不匹配时的sed输出

Dag*_*ang 2 bash

我想从一行中提取一些字段,例如:

echo "aaa,bbb-ccc,ddd" | sed 's/.*,\(.*\)-\(.*\),.*/\1 \2/'
Run Code Online (Sandbox Code Playgroud)

它将"bbb ccc"按照我的预期输出.但如果输入行不是模式,

echo "aaa,bbb,ccc,ddd" | sed 's/.*,\(.*\)-\(.*\),.*/\1 \2/'
Run Code Online (Sandbox Code Playgroud)

它将输出整行"aaa,bbb,ccc,ddd".我想要的是不匹配时,什么都不输出.我该怎么做?

atz*_*tzz 9

sed -n 's /.,(.) - (.),./\1\2/p '

$ echo "aaa,bbb-ccc,ddd" | sed -n 's/.*,\(.*\)-\(.*\),.*/\1 \2/p'
bbb ccc
$ echo "aaa,bbb,ccc,ddd" | sed -n 's/.*,\(.*\)-\(.*\),.*/\1 \2/p'
$
Run Code Online (Sandbox Code Playgroud)

'-n'默认禁用模式空间的打印. p使得sed打印匹配时.