fre*_*ass 8 regex sed bash-scripting
在以下示例中,sed
匹配以 ana
或 a开头的行c
并打印该行的第一个字符 ( a
or c
):
$ echo "ag
bh
ci
dj
ek
fl" | sed 's/\(a\|c\)./\1/' # Matches lines starting with 'a' or 'c'.
output:
a
bh
c
dj
ek
fl
Run Code Online (Sandbox Code Playgroud)
但是,与模式不匹配的行也会被打印出来。我如何告诉sed
省略与模式不匹配的行?我可以通过将其与grep
(如下)结合来获得所需的效果,但我想知道是否sed
可以“单独”实现。
$ echo "ag
bh
ci
dj
ek
fl" | grep '[ac]' | sed 's/\(a\|c\)./\1/'
output:
a
c
Run Code Online (Sandbox Code Playgroud)
Tho*_*hor 12
使用no-print
标志 ( -n
) 并显式打印成功的替代命令 ( s///p
):
sed -n 's/\(a\|c\)./\1/p'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2060 次 |
最近记录: |