使用sed的未终止地址正则表达式

时间:2019-04-30 02:02:59

标签: regex sed

我在Linux上运行的Perl中有一个脚本,并且在下面的行中出现错误未终止的地址正则表达式。

cat $filename | sed ‘sed /^\\s*$/d’ | wc -l

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

好像您要从文件中删除仅空白行。 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

答案 1 :(得分:0)

尝试使用-E正则表达式选项

sed -E '/^\s*$/d' $filename | wc -l