2

data.csv「@」を区切り文字として使用する 4 列の CSV ファイルがあります。

1@fish@ocean@likes to swim in the ocean
2@whale@ocean@likes to swim in the ocean

4 番目の列だけを編集するには、次のコマンドを使用しました。

awk -F "@*" '{print $4}' data.csv > temp.csv

次に、変更する追加のスクリプトをいくつか実行しましたtemp.csv

temp.csvここで、 の内容をに戻し、data.csvの 4 列目のすべてを置き換える必要がありdata.csvます。

data.csvの 4 列目の内容をの編集された行に置き換えるにはどうすればよいtemp.csvですか?

4

2 に答える 2

4

pasteおよびも使用できますcut

cut -d@ -f1-3 data.csv | paste -d@ - temp.csv
于 2013-11-09T12:57:29.010 に答える
3

私は他の答えに賛成しましたが、awkでのアプローチのアイデアを提供するために:

temp.csv最初にファイルを準備したら:

$ cut -d@ -f4 data.csv | sed -e 's,ocean,lava,g' > temp.csv

次に、 からtemp.csv各行を読み取るときに から行を読み取り、行data.csvの 4 番目のフィールドを上書きします。

$ awk -F@ -vOFS=@ '{ getline $4 < "temp.csv" ; print }' data.csv
1@fish@ocean@likes to swim in the lava
2@whale@ocean@likes to swim in the lava
于 2013-11-09T12:56:44.597 に答える