![如何将多个命令输出粘贴到单个输出文件中](https://linux22.com/image/189100/%E5%A6%82%E4%BD%95%E5%B0%86%E5%A4%9A%E4%B8%AA%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E7%B2%98%E8%B4%B4%E5%88%B0%E5%8D%95%E4%B8%AA%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6%E4%B8%AD.png)
我有 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