我有一个任务,要替换字符串中的特定模式。
到目前为止,我尝试过像 sed -e 's/text_to_find/text_to_replace/g' file
这样的命令
但我不知道为什么它改变了所有字符串,而不仅仅是我想改变的一部分。
我想要做的是在每个包含单词 china
的字符串中添加这个 Tomas_proxy.lt
说得很清楚,我在找什么,我正在使用一个文件:
987173,businesswirechina.com
988254,chinacfa.com
988808,1012china.com
989146,chinawise.ru
989561,chinaretailnews.com
989817,mobileinchina.cn
990894,cmt-china.com.cn
990965,chinajoy.net
992753,octaviachina.com
993238,chinadftzalex.com
993447,china-kena.com
这是我想在新文件中看到的
987173,Tomas_proxy.lt/businesswirechina.com
988254,Tomas_proxy.lt/chinacfa.com
988808,Tomas_proxy.lt/1012china.com
989146,Tomas_proxy.lt/chinawise.ru
989561,Tomas_proxy.lt/chinaretailnews.com
989817,Tomas_proxy.lt/mobileinchina.cn
990894,Tomas_proxy.lt/cmt-china.com.cn
990965,Tomas_proxy.lt/chinajoy.net
992753,Tomas_proxy.lt/octaviachina.com
993238,Tomas_proxy.lt/chinadftzalex.com
993447,Tomas_proxy.lt/china-kena.com
附言这只是示例文件,在我使用的真实文件中,并非每一行都有单词
china
,有 100000 个字符串,可以说大约 500 个有 china
最佳答案
你可以试试这个 sed
命令
sed 's/,\(.*china\)/,Tomas_proxy.lt\/\1/' FileName
或者
sed 's/,\(.*china\)/,Tomas_proxy.lt\/\1/' FileName > NewFile
或者
sed -i.bak 's/,\(.*china\)/,Tomas_proxy.lt\/\1/' FileName