这是我当前的命令:
sed 's/\./-/' file.txt > CLEANED.txt
我要做的是用短划线替换文件中的所有句点。有些行有多个句点,我需要用短划线替换它们 - 但上面的命令似乎只是替换了每一行中的第一个。
如果不替换所有时期,我做错了什么?
答案 0 :(得分:3)
在perl中,只需将/g
modifier添加到正则表达式中:
perl -pe 's/\./-/g' file.txt > CLEANED.txt
切换:
-p
:为输入文件中的每个“行”创建一个while(<>){...; print}
循环。 -e
:告诉perl
在命令行上执行代码。 <强>代码强>:
s/\./-/g
:用破折号替换所有句点。也可以使用transliteration operator:y/./-/
答案 1 :(得分:2)
为全局替换添加/g
,否则它仅影响第一次出现。
像这样:
sed 's/\./-/g' file.txt > CLEANED.txt