我正在寻找相当于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 次 |
| 最近记录: |