我正在寻找相当于perl -pe
. 理想情况下,sed
如果可能,它将替换为。任何帮助都受到高度赞赏。
代码是:
perl -pe 's/^\[([^\]]+)\].*$/$1/g'
Run Code Online (Sandbox Code Playgroud)
$ echo '[foo] 123' | perl -pe 's/^\[([^\]]+)\].*$/$1/g'
foo
$ echo '[foo] 123' | sed -E 's/^\[([^]]+)\].*$/\1/'
foo
Run Code Online (Sandbox Code Playgroud)
sed
默认情况下接受来自命令行的代码,因此-e
不需要(尽管可以使用)-p
不需要,sed -n
类似于perl -n
-E
在这里使用是为了尽可能接近 Perl 正则表达式。sed
支持 BRE 和 ERE(不像 Perl 那样具有丰富的功能),甚至不同的实现也不同。
sed 's/^\[\([^]]*\)\].*$/\1/'
\
在字符类中不是特殊的,除非它是一个转义序列,例如\t
,\x27
等等\N
格式(并限制为最大值9
)g
在任何一种情况下都不需要标志,因为您使用的是线锚 归档时间: |
|
查看次数: |
107 次 |
最近记录: |