Linux GREP两个特定的列
我有一个文件,每行有两个单词,使用GREP我必须验证两个条件:Linux GREP两个特定的列,linux,bash,grep,Linux,Bash,Grep,我有一个文件,每行有两个单词,使用GREP我必须验证两个条件: 如果第一个单词以特定字母开头,例如“a” 第二个单词相同,但字母不同,例如“B” 我知道怎么做,只为第一个字验证 grep '^A' file 但是如何验证第二个单词?您可以使用awk: awk '$1 ~ /^A/ && $2 ~ /^B/' file egrep '^A[^[:blank:]]*[[:blank:]]+B' file 如果您想避免使用正则表达式,可以使用以下awk: awk 'index($
grep '^A' file
但是如何验证第二个单词?您可以使用
awk
:
awk '$1 ~ /^A/ && $2 ~ /^B/' file
egrep '^A[^[:blank:]]*[[:blank:]]+B' file
如果您想避免使用正则表达式,可以使用以下awk:
awk 'index($1, "A")==1 && index($2, "B")==1' file
这里有一个egrep
命令,用于相同但更喜欢awk
:
awk '$1 ~ /^A/ && $2 ~ /^B/' file
egrep '^A[^[:blank:]]*[[:blank:]]+B' file
那么:
grep '^A[a-zA-Z]* B' file
您可以使用
egrep
和正则表达式:
$ egrep '^A.*\s+B' file
egrep
也可以通过grep-E
获得:
$ grep -E '^A.*\s+B' file
这里的正则表达式是“以A开头,有一些字符,然后至少有一个空格,然后是A B”。我必须使用grepWhy?这不是适合这项工作的工具。或者这是作业?第一个单词可能只有一个字母。