perl - 将 sed 转换为 perl

yae*_*ael 5 perl sed solaris

以下命令在 Solaris 上工作正常(仅当最后一个字符为 ":" 时才删除行)

 sed -e '/:$/d' < foo > foo.new
Run Code Online (Sandbox Code Playgroud)

如何在 perl 中做同样的事情?(原因是因为我不想创建一个新文件)

  perl -i -pe 's/:$/d' foo
  Substitution replacement not terminated at -e line 1.
Run Code Online (Sandbox Code Playgroud)

use*_*686 7

类似于:

perl -ne '打印除非 /:$/'
perl -ne '打印如果 !/:$/'
perl -ne '!/:$/ && 打印'

注意,这两个sed -iperl -i通过创建一个临时文件,并替换原来的工作。如果您也想避免这种情况,请使用ed

ed 文件 <<'EOF'
克/:$/天
wq
EOF