从行中grep一个数字并将其附加到文件中

Den*_*nis 3 awk grep cat

我经历了几个grep示例,但是看不到如何执行以下操作.

说,我有一行文件

! some test here and number -123.2345 text
Run Code Online (Sandbox Code Playgroud)

我可以使用这条线

grep ! input.txt
Run Code Online (Sandbox Code Playgroud)

但是如何从这一行获得数字(可能是正数或负数)并将其附加到另一个文件的末尾?是否可以将grep应用于grep结果?如果是,那么我可以通过类似的东西获得数字

grep -Eo "[0-9]{1,}|\-[0-9]{1,}"
Run Code Online (Sandbox Code Playgroud)

p/s /我正在使用OS-X

p/p/s /我试图从几个文件中获取数据并放入一个文件中以供以后绘图.

Chr*_*our 7

您的命令格式为:

grep ! input.txt | grep -Eo "[0-9]{1,}|\-[0-9]{1,}" >> output
Run Code Online (Sandbox Code Playgroud)

为了grepgrep我们使用管道运营商|这让我们链命令组合在一起.要将此输出附加到文件,我们使用重定向运算符>>.

但是有一些问题.你写的regexp更好:grep -Eoe '-?[0-9.]+'这允许十进制并返回单个数而不是两个,如果你想要以!grep 开头的行^!更好地避免与包含!但不以它开头的行匹配.更好:

grep '^!' input | grep -Eoe '-?[0-9.]+' >> output 
Run Code Online (Sandbox Code Playgroud)