awk - grep 行中的数字并将其附加到文件中

标签 awk grep cat

我浏览了几个 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/

相关文章:

merge - 将 2 个文件合并到第三个文件中,使用列作为索引并合并行

awk - 如果段落包含存储在变量中的字符串,则打印该段落(空行分隔段落)

grep - grep 自动忽略文件

regex - 带正则表达式的 grep 作用域

bash - 如何使任何 sed、awk 和 grep 命令忽略以# 开头的行?

python - 命令 "python --verson"使用 "awk"提取版本号

linux|awk|shell脚本 block 删除

bash - 带文件名的递归猫

Golang - 为什么字符串 slice 元素不包含在 exec cat 中,除非我对它进行排序

bash - unix shell脚本中的cat命令