複数の行を含むCSVファイルがあります。同じデータを複数回コピーし、毎回特定の文字を別のファイルの別の文字に置き換えたいと思います。
はい:
以下には、csvとrefファイル(A〜Zを含む)文字という2つのファイルがあります。 csvコンテンツを26回(A〜Z)コピーし、毎回変数を変更したいと思います。VARA、B、C、…Zへ。
catcsv_file
some text with VAR,data 2,data 3,data 4,some text and VAR
,,,data 4,some text
,,,data 4,some text
猫参考資料
A
B
C
...so on upto
Z
結果:
some text with A,data 2,data 3,data 4,some text and A
,,,data 4,some text
,,,data 4,some text
some text with B,data 2,data 3,data 4,some text and B
,,,data 4,some text
,,,data 4,some text
..
... so on
私がしていることは
DATA="some text with & following text,data 2,data 3,data4,some text and_&\n,,,data4,some text\n,,,data 4,some text"
sed -e "s/^.*$/$DATA/g" ref
変数(DATA)の代わりにファイル名を使用する以外に、同じ結果を得る別の方法はありますか?
答え1
VAR を {A..Z} に置き換えるたびに、次のコマンドを使用します。
うまくいきます。
for i in `cat /var/tmp/ref`; do sed "s/VAR/$i/g" csv_file ;done
サンプル出力
some text with A,data 2,data 3,data 4,some text and A
,,,data 4,some text
,,,data 4,some text
some text with B,data 2,data 3,data 4,some text and B
,,,data 4,some text
,,,data 4,some text