我对使用命令行非常陌生,如果这看起来像一个愚蠢的问题,我很抱歉!我正在尝试使用以下命令集在终端中编辑 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
,sed
和cut
读文件,执行更改并将输出发送到stdout
,例如 shell 会话。
如果您想实际更改文件,您可以
- 将一个命令的输出传送到下一个命令
sed
与该选项一起使用-i
(如果您的sed
版本提供该选项)- 将每个命令的输出重定向到一个临时文件,
> temp-filename
该文件可用作下一阶段的输入