我有一个在Linux上运行的Perl脚本,我在下面的行中收到一个错误未终止的地址正则表达式。
cat $filename | sed ‘sed /^\s*$/d’ | wc -l
如何解决此问题?
看起来您想从文件中删除仅空格行。 sed 语法为:
/^s*$/d
你要传递给 sed 的是
sed /^\s*$/d
顺便说一下,这是一种替换形式 s/find/replace/,但使用 e
而不是斜杠。 (您几乎可以在那里使用任何字符。由于没有其他e
来终止搜索和替换模式,因此 sed 会引发错误。
您需要的是:
% cat $filename | sed '/^s*$/d' | wc -l
或者没有猫:
% sed '/^s*$/d' $filename | wc -l
尝试使用正则表达式选项 -E
sed -E '/^s*$/d' $filename | wc -l