答案1
不,管道不处理它。管道不会按顺序运行两个命令并将第一个命令的输出存储在内存中。这两个程序同时运行,并使用称为管道的特殊 I/O 设备进行连接。但在启动程序之前,shell 会设置所有 I/O 重定向,这意味着它会打开输出文件并截断它。
如果你有 GNU awk,你可以使用它inplace
覆盖输入文件的选项。
gawk -i inplace -F'\.' -v OFS=. '{print $2, $1}' department.txt
不,管道不处理它。管道不会按顺序运行两个命令并将第一个命令的输出存储在内存中。这两个程序同时运行,并使用称为管道的特殊 I/O 设备进行连接。但在启动程序之前,shell 会设置所有 I/O 重定向,这意味着它会打开输出文件并截断它。
如果你有 GNU awk,你可以使用它inplace
覆盖输入文件的选项。
gawk -i inplace -F'\.' -v OFS=. '{print $2, $1}' department.txt