打印包含1列中2个字符且另一列中包含模式匹配的CSV行

时间:2012-03-13 00:54:44

标签: bash sed awk

我有一个4列的CSV文件:

01, cat, animal, it catches mice
  • 该文件包含UTF-8中各种语言的许多字符。

如何只打印第2列中包含2个字符的那些行,同时还匹配第4列中该行上任何位置的“/ to”模式?

2 个答案:

答案 0 :(得分:1)

您可以使用awk:

$ cat /tmp/l
01, cat, animal, it catches mice
02, ok, aaa, e/tomos
03, bad, qux, vb/tomos

$ awk -F"," 'length($2) == 3 && $4 ~ /\057to/' /tmp/l
02, ok, aaa, e/atmos

答案 1 :(得分:1)

这可能对您有用:

sed '/^[^,]*,\s*..,[^,]*,.*\/to/!d' file