我有一个文件,其中的单词在行上用“,”分隔,每行都有相同数量的单词,比如 4。所以它们的形式是:
something1,something2,something3,something4
我想精确搜索第四列中包含的行something4
,但是如果存在另一行类似这样的行,我该怎么做:
something1,something2,something3,1_something4
使用 grep 我会得到这两行,但我只想要第四个元素上的行,something4
我该怎么办?
答案1
您可以awk
为此使用:
awk -F, '$4 == "something4"' file.csv
这应该打印第四列所在的任何行的整行something4
为了将变量传递给您,awk
您需要执行以下操作:
var1=$(echo "something,something4" | cut -f2 -d,)
awk -F, -vsearch="$var1" '$4 == search' file.csv
答案2
答案3
一般来说,对于此类问题,您可以使用cut
仅获取所需的列,然后grep
就可以了。
echo something1,something2,something3,something4 | cut -d , -f 4 | grep '^something4$'