我有兴趣在终端中列出 csv 文件中第一个字符为 'A' 的行。有没有一种快速的方法可以做到这一点?
答案1
假设您有以下文件:
~$ cat f
1,AA,2
2,BB,2
3, AA, 1
C, BA, 1
您可以简单地使用 grep:
~$ grep "^[^,], *A" f
1,AA,2
3, AA, 1
但使用具有相同正则表达式的 awk 是可能的:
~$ awk '/^[^,], *A/' f
1,AA,2
3, AA, 1
更好的方法是使用字段分隔符 ( -F','
) 并测试第二个字段:
~$ awk -F',' '$2~/^ *A/' f
1,AA,2
3, AA, 1
并使用 sed:
~$ sed -n '/^[^,], *A/p' f
1,AA,2
3, AA, 1
请注意,如果带引号的字段内有逗号,则这些命令将不起作用,例如:
"1,A",AA,A
'1,A',AA,A