我浏览了几个 grep 示例,但不知道如何执行以下操作。
比如说,我有一个包含一行的文件
! some test here and number -123.2345 text
我可以使用
得到这一行grep ! input.txt
但是我如何从这一行获取数字(可能是正数或负数)并将其附加到另一个文件的末尾?是否可以将 grep 应用于 grep 结果? 如果是,那么我可以通过类似的方式获取号码
grep -Eo "[0-9]{1,}|\-[0-9]{1,}"
p/s/我使用的是 OS-X
p/p/s/我正在尝试从多个文件中获取数据并将其放入一个文件中以供以后绘图。
最佳答案
命令的格式为:
grep ! input.txt | grep -Eo "[0-9]{1,}|\-[0-9]{1,}" >> output
致grep
来自grep
我们使用管道运算符 |
这让我们可以将命令链接在一起。要将输出附加到文件,我们使用重定向运算符 >>
。
但是存在一些问题。你的正则表达式写得更好:grep -Eoe '-?[0-9.]+'
这允许小数并返回单个数字而不是两个数字,并且如果您想要以 !
开头的行然后 grep ^!
最好避免与包含 !
的行匹配但不要从它开始。更好的做法是:
grep '^!' input | grep -Eoe '-?[0-9.]+' >> output
关于awk - grep 行中的数字并将其附加到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16167024/