在列中搜索确切的字符串

C. *_*sti 2 grep text-processing

我有一个文件,其中的单词以 ',' 分隔,每一行都有相同数量的单词,比如说 4。所以它们的形式是:

something1,something2,something3,something4

我想搜索包含在第 4 列中的行something4,但是如果存在另一行是这样的,我该怎么做:

something1,something2,something3,1_something4

使用 grep 我会得到这两行,但我只想要第 4 个元素的行,something4我该怎么办?

jes*_*e_b 10

您可以awk为此使用:

awk -F, '$4 == "something4"' file.csv
Run Code Online (Sandbox Code Playgroud)

这应该为第 4 列正好是的任何行打印整行 something4


为了将变量传递给awk您,您需要执行以下操作:

var1=$(echo "something,something4" | cut -f2 -d,)
awk -F, -vsearch="$var1" '$4 == search' file.csv
Run Code Online (Sandbox Code Playgroud)


Jef*_*ler 10

或者,由于只有 4 列,而您希望在最后一列中包含特定内容,

grep ',something4$' < input
Run Code Online (Sandbox Code Playgroud)

(发布以防您实际上对 grep 没问题;awk是一个很好的解决方案)。