如何将多个命令输出粘贴到单个输出文件中

如何将多个命令输出粘贴到单个输出文件中

我有 txt 文件,我必须将第一段与最后一段交换。我做到了,但现在我不知道如何将所有内容粘贴到新的 txt 文件中。

这是我的命令

tail -14 gl.txt ; head -n 74 gl.txt | tail -n 68 ; head -5 gl.txt

我尝试像这样使用 >

tail -14 gl.txt ; head -n 74 gl.txt | tail -n 68 ; head -5 gl.txt > gl_ok.txt

但只需要最后一段。

我该怎么做?

答案1

尝试将命令分组{ ...; }并将末尾的输出重定向到文件:

{ tail -14 gl.txt ; head -n 74 gl.txt | tail -n 68 ; head -5 gl.txt; } > gl_ok.txt

请注意,右括号之前的最后一个分号是强制性的,或者组命令可以用换行符终止,如下所示:

{ tail -14 gl.txt ; head -n 74 gl.txt | tail -n 68 ; head -5 gl.txt
} > gl_ok.txt

如果你的 shell 是 bash,请参阅男人狂欢在“复合命令”下:

{ 列表; }
list 只是在当前 shell 环境中执行。列表必须以换行符或分号结束。这被称为群组命令

另请参阅使用子 shell 对命令进行分组( ... ),您会这样做(...) >output

相关内容