linux - 如何从文件中以特定单词开头的 bash 输出中保存文本?

标签 linux bash text-processing

<分区>

我正在使用 Debian Linux(在 BeagleBone Black 中)。我正在使用的程序在屏幕上打印了很多信息。到目前为止,我一直将整个输出保存在一个文本文件中,这显然占用了有限存储空间的很大一部分。例如,我正在做这样的事情:

./exampleProgram > Output.txt

正如我所说,这个文件包含很多信息,我目前并不真正需要这些信息。我只关心以“Schedule request”开头的行。我正在寻找一种方法将这些行保存到输出文件,而忽略其余部分。我试过跟随,但没有用。

./exampleProgram | grep "Schedule request" > Output.txt

我该怎么做?

最佳答案

在现代 GNU 平台上:

stdbuf -oL ./exampleProgram \
  | grep --line-buffered "Schedule request" \
  > Output.txt
  • stdbuf -oL 是一个 GNU 工具,它在运行 exampleProgram 之前将 stdout 配置为无缓冲。 (exampleProgram 可以覆盖或忽略此设置,因此它的实现很重要)。
  • grep --line-buffered 告诉 GNU grep 不要缓冲大于一行的部分。

关于linux - 如何从文件中以特定单词开头的 bash 输出中保存文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45354291/

相关文章:

java - IntelliJ 嵌入式 Java JVM 插件 bash 错误

bash - 查找恰好包含 n 行的所有文件

bash - 使用 Go 从 "nc -e/bin/bash"生成带有 TTY 的 shell

linux - GNU screen : set name or title

linux - 如何在 Mint 中使用 bash 安装 Pycharm?以某种方式将图标添加到程序列表中

linux - 调用 mlockall() 后在同一地址重复发生小页面错误

linux - 400 错误请求安装 Perlbrew 本身

sed - 在没有换行符的情况下使用 sed 的追加/更改/插入

python - 我无法理解 keras 中的 skipgrams() 函数

linux - 使用 UNIX 或 perl 从文本文件的每一行中提取特定文本