通过命令行用短划线替换句点?

时间:2014-08-07 23:49:21

标签: perl shell command-line command

这是我当前的命令:

sed 's/\./-/' file.txt > CLEANED.txt

我要做的是用短划线替换文件中的所有句点。有些行有多个句点,我需要用短划线替换它们 - 但上面的命令似乎只是替换了每一行中的第一个。

如果不替换所有时期,我做错了什么?

2 个答案:

答案 0 :(得分:3)

在perl中,只需将/g modifier添加到正则表达式中:

perl -pe 's/\./-/g' file.txt > CLEANED.txt

说明:

切换

  • -p:为输入文件中的每个“行”创建一个while(<>){...; print}循环。
  • -e:告诉perl在命令行上执行代码。

<强>代码

答案 1 :(得分:2)

为全局替换添加/g,否则它仅影响第一次出现。 像这样:

sed 's/\./-/g' file.txt > CLEANED.txt