私はコマンドラインを初めて使用するので、これが愚かな質問のように見えた場合は申し訳ありません!次のコマンドセットを使用して端末で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
シェルセッションなどに送信します。
実際にファイルを変更するには:
- あるコマンドの出力を次のコマンドにパイプします。
sed
このオプションと一緒に使用されます-i
(あなたのsed
バージョンで提供されている場合)。> temp-filename
各コマンドの出力を次のステップの入力として使用できる一時ファイルにリダイレクトする