这是什么意思? 我没有评价这个
sed -n "s/,*Receivsed,\([0-9]\+\), *Sent,\([0-9]\+\),*/\1\2/p"
答案 0 :(得分:1)
它将Receivsed(sic!)后的数字捕获到\1
和发送到\2
后的数字,然后用这两个数字替换整个子字符串,然后打印该行。
您可以尝试
echo ',Receivsed,123,Sent,456' |
sed -n "s/,*Receivsed,\([0-9]\+\), *Sent,\([0-9]\+\),*/\1\2/p"
详细说明:
-n
逐行读取输入,但如果没有告诉,*
匹配零个或多个逗号\(...\)
创建一个捕获组,组从\1
[0-9]\+
匹配一个或多个数字, *
匹配逗号后跟零个或多个空格s/PATTERN/REPLACEMENT/
替换PATTERN by REPLACEMENT /p
表示如果匹配成功,则会打印替换结果