Bash:如何选择某列中以大写字母开头的所有行

时间:2017-02-17 12:17:04

标签: bash

我有一个文本文件,第2列有单词,有些数字与其他列中的单词匹配。我想删除单词以小写字母开头的所有行。我可以使用一个命令吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

$ cat test.txt
1,abc,2
3,Abc,4
5,bcd,6
7,Bcd,8


$ awk -F "," '$2 ~ /^[A-Z]/{print "Col1 " $1 " Col3 " $3}' test.txt
Col1 3 Col3 4
Col1 7 Col3 8

您没有给出输入文件的格式,我认为它是CSV。

AWK -F标志,用逗号分隔。然后你可以在awk脚本中访问可访问的列,如$ 1,$ 2,$ 3等...

开头的awk过滤器确保第二列与正则表达式匹配/ ^ [A-Z] /,并且对于每个成功匹配发出print语句。