模式的所有行我有一个文件tmpFile
包含:删除不匹配SED
wqf____32qwfe
123412
qqwef123414
12039421
...
在tmpFile
有只有数字,可以包含任何字符,线条在其中,或线条。
我想保留只包含整数的行。 我该如何做到这一点?
模式的所有行我有一个文件tmpFile
包含:删除不匹配SED
wqf____32qwfe
123412
qqwef123414
12039421
...
在tmpFile
有只有数字,可以包含任何字符,线条在其中,或线条。
我想保留只包含整数的行。 我该如何做到这一点?
虽然你可以为此使用SED的工作就是摹 lobally搜索[R egular Ë上的表达和P RINT结果如此猜测的发明是为了做正是这个工作什么工具?
要打印仅包含数字线,GNU的grep是:
grep -E '^[0-9]+$' file
或与任何的grep:
grep '^[0-9][0-9]*$' file
要打印包含非数字线:
grep '[^0-9]' file
打印不包含数字的行(包括空行):
grep -v '[0-9]' file
要打印不包含非数字线(包括空行):
grep -v '[^0-9]' file
可以禁止印刷图案的空间,只打印匹配的数字图案的线条,例如:
$ sed -n '/^[0-9]\+$/p' file
123412
12039421
sed '/^[0-9]\+$/!d' tmpFile
的!
反转的逻辑。请注意,\+
不是符合POSIX的版本sed
(例如BSD或Mac OS X sed
)的基本功能的一部分。
sed '/^[0-9]\{1,\}$/!d' tmpFile
这会工作,寻找一个或多个数字。
还有其他方法可以达到相同的整体效果,特别是在这个有限的环境中。如果您需要将其作为更大脚本的一部分来执行此操作,则这是您的要求的直接答案。
同样可以通过重复图案'/^[0-9] [0-9]被归档* $ /!d' – andlrc
是的,非常有趣,这似乎真的是我想要做的。 'grep -E'^ [0-9] + $'tmpFile'和'grep'^ [0-9] [0-9] * $'tmpFile'为我想要做的工作!谢谢 – Simonlbc