有没有办法在 bash 中双重打印文件?

Is there a way to double print a file in bash?

我是 Linux 和编程的新手。我的问题如下:我有一个文件列出 3 列。我想交换第一列和最后一列,打印它以在一行中提示 AND 到一个新文件。所以我交换了列并将其打印出来以提示 OR 到一个文件。

$ awk -F, ' { t = ; = ; = t; print; } ' OFS=, liste.csv

这是我打印它以提示的基线。但是似乎不可能在同一个命令行中将它打印到一个新文件中。 有人知道吗? 以下是一些无效的示例:

$ awk -F, ' { t = ; = ; = t; print; } ' OFS=, liste.csv | >liste2.csv

$ printf "$(sudo awk -F, ' { t = ; = ; = t; print; } ' OFS=, liste.csv > liste2.csv)"

$ cat $(sudo awk -F, ' { t = ; = ; = t; print; } ' OFS=, liste.csv > liste2.csv)

我想你明白我的意思了。 谢谢!

打印它以在一行中提示 AND 到一个新文件

这听起来像是 tee 的任务。假设

awk -F, ' { t = ;  = ;  = t; print; } ' OFS=,  liste.csv

确实会向标准输出生成正确的输出,这

awk -F, ' { t = ;  = ;  = t; print; } ' OFS=,  liste.csv | tee liste2.csv

应该写入 liste2.csv 和标准输出

使用 tee 命令,如 How to redirect output to a file and stdout

中所述

或者,除了现有的 print 之外,通过添加 print > "liste2.csv"awk 内重定向它以在 stdout

上显示