0

我正在使用 grep 显示邮政编码列中只有 4、5、6、7 和 9 的所有行。

如何仅在邮政编码字段中显示包含数字 4、5、6、7 和 9 的文件行?

示例行是:

15 m jagger mick 41 4th 95115

谢谢

4

3 回答 3

2

我将假设您的意思是“我如何使用 grep 来...”

如果文件中的所有行在每行末尾都有一个 5 位数的 zip,则:

egrep "[45679]{5}$" 文件名

应该给你你想要的。

如果 zip 和行尾之间可能有空格,则:

egrep "[45679]{5}[[:space:]]*$" 文件名

会更健壮。

如果问题比这更普遍,请更准确地描述它。

于 2013-10-01T22:48:03.137 回答
0

以下正则表达式应该会获取您想要的结果:

egrep "[45679]+$" file
于 2013-10-01T22:55:11.217 回答
0

如果您所说的“grep”是指“正确的工具”,那么您寻求的解决方案是:

awk '$7 ~ /^[45679]*$/' input

这将打印第 7 个字段仅包含字符 4、5、6、7 和 9 的所有输入行。如果要指定“最后一列”而不是第 7 列,请尝试

awk '$NF ~ /^[45679]*$/' input
于 2013-10-01T22:55:23.223 回答