如何创建脚本以将sed命令添加到文件中(bash脚本)

时间:2012-04-08 13:01:05

标签: linux bash csv

我的.csv文件包含2个以,分隔的列。

FILE.CSV

word1,word2  
word3,word4  
word5,word6  
.  
.  
.  
.  
word1000,1001  

我想从file.csv创建一个新文件并插入sed命令,如下所示:

mynewfile

sed -e 's,word1,word2,gI' \  
   -e 's,word3,word4,gI' \  
   -e 's,word5,word6,gI' \  
    ....

如何制作添加sed命令的脚本?

2 个答案:

答案 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"