1

我有 .csv 文件,其中包含 2 列用,.

文件.csv

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 命令?

4

2 回答 2

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' \
于 2012-04-08T13:05:46.213 回答
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"
于 2012-04-08T13:37:51.610 回答