我正在尝试输出grep的控制台结果而没有前导空格。我试着想出一些regexp,它会排除每一行的前导零但是失败了.. 我发现answer,它可以用sed制作。所以我尝试了这个命令
cat feed* | grep '^.*[{]$' | sed -e 's/^[ \t]*//;s/[ \t]*$/'
并得到错误:sed:-e expression#1,char 22:unterminated`s s命令
我之前从未使用过sed,所以我无法理解什么是/ ^ [\ t] //; s / [\ t] $ /'即使在阅读{{ 3}}
可能有人可以使用grep来做到这一点。它是完美的(我明白它可能不实用,但它很有趣)。如果有人能解释我sed如何使用该表达式以及我做错了什么,我会非常感激。
答案 0 :(得分:2)
您在第二个sed
表达式中错过了替换。说:
sed -e 's/^[ \t]*//;s/[ \t]*$//'
^
|
|== This was missing thereby causing the error
答案 1 :(得分:1)
尝试以下解决方案,使用grep删除前导和尾随空格:
grep -Po '\S.*?(?=\s*$)' infile
它使用perl
风格并仅打印匹配的内容,而不是整行。它开始与任何非空格字符匹配,并使用非贪婪的量词,直到它可以完成与空白的匹配,直到结束前瞻。