我的.csv文件包含2个以,
分隔的列。
word1,word2
word3,word4
word5,word6
.
.
.
.
word1000,1001
我想从file.csv创建一个新文件并插入sed命令,如下所示:
sed -e 's,word1,word2,gI' \
-e 's,word3,word4,gI' \
-e 's,word5,word6,gI' \
....
如何制作添加sed命令的脚本?
答案 0 :(得分:1)
您可以使用sed
处理每一行:
echo -n 'sed ' ; sed -e "s/^\(.*\)/-e 's,\1,gl'\ \\\/" file.csv
将按要求生成
sed -e 's,word1,word2,gl' \
-e 's,word3,word4,gl' \
-e 's,word5,word6,gl' \
答案 1 :(得分:1)
您的目标是从文件中执行自定义替换。在这种情况下,我不会生成包含bash
脚本的文件来完成这项工作,但我会生成一个sed
脚本来完成这项工作:
sed -e 's/^/s,/' -e 's/$/,gI/' file.csv > sed_script
sed -f sed_script <<< "word1"
我们甚至可以避免将sed_script
文件与bash的进程替换一起使用:
sed -f <(sed -e 's/^/s,/' -e 's/$/,gI/' file.csv) <<< "word1"
<强>更新强>
简化sed
脚本生成,它变为:
sed -e 's/.*/s,&,gI/' file.csv > sed_script
sed -f sed_script <<< "word1"
和
sed -f <(sed -e 's/.*/s,&,gI/' file.csv) <<< "word1"