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 X
sed
)的基本功能的一部分

这将起作用,寻找一个或多个数字


还有其他方法可以达到同样的总体效果,特别是在这种有限的环境下。如果您需要在更大的脚本中执行此操作,这是对您的要求的直接回答。

虽然您可以使用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