ubuntu - 如何使用 grep 在同一行中查找不同的字符串

标签 ubuntu grep

我正在尝试查找包含第一个字符串的文本文件中的所有行,例如 |Kittens|Color| .然后我希望搜索跳过下一组 || 中的内容搜索第二个字符串,如 |Location| .

文件中的所有内容都由管道 | 分隔。符号。换句话说,我希望文本文件中包含 Kittens、Color 和 Location 的所有行都在文件中:

12321415|Kittens|Color|Gender|Location|

最佳答案

我认为最好是使用awk像这样:

awk -F"|" '$2=="Kittens" && $3=="Color" && $5=="Location"' file

这设置了管道 |作为字段分隔符,并在此基础上检查特定字段 2、3 和 5 的值。如果它们都与给定值匹配,则打印该行。

测试
$ cat a
12321415|Kittens|Color|Gender|Location|
12321415|Kittens|Color|Location|Blabla|
asdf|asdf|asdf|ads|asd|

并执行 awk:
$ awk -F"|" '$2=="Kittens" && $3=="Color" && $5=="Location"' a
12321415|Kittens|Color|Gender|Location|

关于ubuntu - 如何使用 grep 在同一行中查找不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26591532/

相关文章:

linux - gtk helloworld 在 ubuntu 上编译错误

qt - 安装 QWT 库时出错

c++ - 如何从.cpp文件和makefile编译程序

linux - 在 Linux 中使用 SSL 搜索文件

linux - 列出缺少相应文件的文件

perl - 为什么 Perl 的 shift 会提示 'Type of arg 1 to shift must be array (not grep iterator).' ?

node.js - npm install socket.io 卡在 node-gyp 步骤上

ubuntu - Android Studio IBus 解决方法

bash - 排序在 bash 中无法正常工作

regex - grep 前一行仅针对一种特定模式