我正在使用 grep 显示邮政编码列中只有 4、5、6、7 和 9 的所有行。
如何仅在邮政编码字段中显示包含数字 4、5、6、7 和 9 的文件行?
示例行是:
15 m jagger mick 41 4th 95115
谢谢
我将假设您的意思是“我如何使用 grep 来...”
如果文件中的所有行在每行末尾都有一个 5 位数的 zip,则:
egrep "[45679]{5}$" 文件名
应该给你你想要的。
如果 zip 和行尾之间可能有空格,则:
egrep "[45679]{5}[[:space:]]*$" 文件名
会更健壮。
如果问题比这更普遍,请更准确地描述它。
以下正则表达式应该会获取您想要的结果:
egrep "[45679]+$" file
如果您所说的“grep”是指“正确的工具”,那么您寻求的解决方案是:
awk '$7 ~ /^[45679]*$/' input
这将打印第 7 个字段仅包含字符 4、5、6、7 和 9 的所有输入行。如果要指定“最后一列”而不是第 7 列,请尝试
awk '$NF ~ /^[45679]*$/' input