Bash 删除所有没有';不能将模式与sed匹配
我有一个文件Bash 删除所有没有';不能将模式与sed匹配,bash,sed,grep,Bash,Sed,Grep,我有一个文件tmpFile包含: wqf____32qwfe 123412 qqwef123414 12039421 ... 在tmpFile中,有些行中只有数字,有些行可以包含任何类型的字符 我想保留只包含整数的行。 如何实现这一点?您可以取消打印图案空间,只打印与数字图案匹配的行,例如: $ sed -n '/^[0-9]\+$/p' file 123412 12039421 反转逻辑。请注意,\+不是符合POSIX标准的sed版本(例如BSD或Mac OS Xsed)的基本功能的一部分
tmpFile
包含:
wqf____32qwfe
123412
qqwef123414
12039421
...
在tmpFile
中,有些行中只有数字,有些行可以包含任何类型的字符
我想保留只包含整数的行。
如何实现这一点?您可以取消打印图案空间,只打印与数字图案匹配的行,例如:
$ sed -n '/^[0-9]\+$/p' file
123412
12039421
代码>反转逻辑。请注意,\+
不是符合POSIX标准的sed
版本(例如BSD或Mac OS Xsed
)的基本功能的一部分
这将起作用,寻找一个或多个数字
还有其他方法可以达到同样的总体效果,特别是在这种有限的环境下。如果您需要在更大的脚本中执行此操作,这是对您的要求的直接回答。虽然您可以使用sed来执行此操作,但任务是G全局搜索R正则E表达式并打印结果,那么猜猜发明了什么工具来精确执行此操作
要使用GNU grep打印仅包含数字的行,请执行以下操作:
grep -E '^[0-9]+$' file
或使用任何grep:
grep '^[0-9][0-9]*$' file
要打印包含非数字的行,请执行以下操作:
grep '[^0-9]' file
要打印不包含数字的行(包括空行):
要打印不包含非数字的行(包括空行),请执行以下操作:
通过重复模式/^[0-9][0-9]*$/,同样可以存档!是的,非常有趣,这似乎是我真正想做的grep-E'^[0-9]+$'tmpFile
和grep'^[0-9][0-9]*$'tmpFile
为我想做的事工作!谢谢
grep '^[0-9][0-9]*$' file
grep '[^0-9]' file
grep -v '[0-9]' file
grep -v '[^0-9]' file