以前のコマンドを元に戻すことなく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シェルセッションなどに送信します。

実際にファイルを変更するには:

  • あるコマンドの出力を次のコマンドにパイプします。
  • sedこのオプションと一緒に使用されます-i (あなたのsedバージョンで提供されている場合)。
  • > temp-filename 各コマンドの出力を次のステップの入力として使用できる一時ファイルにリダイレクトする

関連情報