sed - 複数行モードの交換と使用

sed - 複数行モードの交換と使用

複数の行を含む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

おすすめ記事