nee*_*l g 1 python command-line bash io
假设我运行了一个名为 python 的程序,test.py并希望将它的所有输出保存在一个文件中。
我们可以通过python3 test.py > output.txt
但是,如果程序产生很多行,那么 bash 中减少写入文件的数据量的最有效方法是什么?
示例:保存程序输出的每一
x行,或者每行。
那么我怎样才能只使用 bash 来做到这一点,最好是实时更新文件呢?
编辑:- SteelDriver 的回答似乎有效。但是,有人还可以告诉我一个命令,x它按原样打印第一行,但在行之后x,输出每一y行并将它们存储在文件中?
您可以将程序的标准输出作为过滤器通过另一个程序通过管道传输 - 例如从第一行开始每 10 行写入一次
python3 test.py | sed -n '1~10p' > output.txt
Run Code Online (Sandbox Code Playgroud)
或者
python3 test.py | awk '!((NR-1)%10)' > output.txt
Run Code Online (Sandbox Code Playgroud)
如果你真的只需要使用 bash,那么你可以用一个 shell 循环替换 sed/awk,使用计数器和条件算术表达式来选择所需的行 - 但我不推荐它。参见示例为什么使用 shell 循环处理文本被认为是不好的做法?.