如何将多个命令应用于 CSV 文件而不撤消前一个命令?

如何将多个命令应用于 CSV 文件而不撤消前一个命令?

我对使用命令行非常陌生,如果这看起来像一个愚蠢的问题,我很抱歉!我正在尝试使用以下命令集在终端中编辑 CSV 文件:

(head -n 1 canine_genes_v2.csv && tail -n +2 canine_genes_v2.csv | sort -t, -k2,2n)

sed ‘s/plus/+/g’ canine_genes_v2.csv

sed ‘s/minus/-/g’ canine_genes_v2.csv

cut -d, -f 1,2,3,4,5,6 canine_genes_v2.csv

perl -p -e 's/,/\t/g' canine_genes_v2.csv

我的问题是,每次应用命令时,它都会撤消前一个命令,我已经弄清楚如果我单独运行每个命令并将输出保存到不同的文件中,我就可以使用 md5sum 命令看到更改。但我的问题是我想同时将所有这些命令应用到同一个文件。

答案1

这些命令都不会撤消任何操作,它们根本不会更改文件。应用您的命令之一并查看该文件没有更改。这些命令如head,sedcut 文件,执行更改并将输出发送到stdout,例如 shell 会话。

如果您想实际更改文件,您可以

  • 将一个命令的输出传送到下一个命令
  • sed与该选项一起使用-i (如果您的sed版本提供该选项)
  • 将每个命令的输出重定向到一个临时文件,> temp-filename 该文件可用作下一阶段的输入

相关内容