如何保存命令行输出的特定行

如何保存命令行输出的特定行

我有一个可执行文件,它可以向终端生成以下内容:

---Start---
Some text
More text
-1.
1.
0.39
10
-199
some more text
   Complete
---End---

我只想将终端中的数值写入文件。目前,我正在使用

./executable 2>&1 | grep -vE 'S|M|s|^[--]|^[ ]' | tee log.txt

这似乎满足了我的要求。具体来说,通过使用 -v,我明确说明了要排除的内容。但是,这似乎效率很低,因为我必须添加整个字母表(大写和小写)才能确保只有数值添加到 log.txt 文件中。

有没有更好的方法将所有数值(正数和负数)写入一个文件?

答案1

您只需排除包含文本的行即可。在命令中使用以下 grep:

grep -v '[A-Za-z]'

相关内容