![如何用条件grep第三个逗号后的行](https://linux22.com/image/122568/%E5%A6%82%E4%BD%95%E7%94%A8%E6%9D%A1%E4%BB%B6grep%E7%AC%AC%E4%B8%89%E4%B8%AA%E9%80%97%E5%8F%B7%E5%90%8E%E7%9A%84%E8%A1%8C.png)
我想查看第三个逗号后 4 位数字的文本行。
输入:
123456789012345,00,0000,000
111111111111111,00,0000,0000
输出:
111111111111111,00,0000,0000
答案1
您可以使用以下方法执行此操作awk
:
$ awk -F, 'length($4) == 4' file
111111111111111,00,0000,0000
答案2
即要匹配第三个逗号后的 4 位数字:
awk -F, '$4~/^[0-9]{4}$/' file
答案3
要匹配仅包含十进制数字的行,然后是第三个逗号之后的行尾(没有其他内容,甚至后面不允许有逗号),使用grep
:
grep -xE '([^,]*,){3}[0-9]{4}' <file