我有一个包含多行的 CSV 文件。我想多次复制相同的数据,并且每次用不同文件中的另一个字符替换特定字符。
例子:
下面是两个文件,一个 csv 和一个 ref 文件(包含 A 到 Z)字符。我想复制 csv 内容 26 次(A 到 Z)并且每次替换变量VAR与 A、B、C、...Z。
猫 csv_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
每次用 {A..Z} 替换 VAR 时使用以下命令
它工作正常
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