我们如何将标准输出(或标准错误)和文件的结果连接到最终文件中。
例如
ls -a | grep text1
Run Code Online (Sandbox Code Playgroud)
连接file2.txt
到最终结果(不是file2.txt
),而不存储grep text1
到中间的东西,例如grep text1 > file1.txt
jim*_*mij 21
ls -a | grep text1 | cat file2.txt -
Run Code Online (Sandbox Code Playgroud)
该-
代表标准输入。或者你可以写
ls -a | grep text1 | cat - file2.txt
Run Code Online (Sandbox Code Playgroud)
以不同的顺序输出。
使用进程替换的另一种可能性:
cat <(ls -a | grep text1) file2.txt
Run Code Online (Sandbox Code Playgroud)
或以不同的顺序:
cat file2.txt <(ls -a | grep text1)
Run Code Online (Sandbox Code Playgroud)
您可以使用{}
或()
将命令组合在一起并重定向它们的组合输出:
{
cat file1.txt
echo "Now the ls/grep"
ls -a |grep foobar
} > file2.txt
Run Code Online (Sandbox Code Playgroud)
作为单线:
{ cat file1.txt; echo "Now the ls/grep"; ls -a |grep foobar; } >file2.txt
Run Code Online (Sandbox Code Playgroud)
最后一个;
是必要的。