Text-Processing
用 sed 替換匹配後的字元
我有一個字元串:
172.16.1.5] "80 EE 73 2F 0B 40
我需要
] "
用冒號替換之後的所有空格。目前使用sed -r 's/[ ]+/:/g'
我得到的輸出172.16.1.5]:"80:EE:73:2F:0B:40:
,但是我需要在括號後保留第一個空格。如何替換一個字元的所有實例,但只能在使用 sed 匹配之後?
有不同的方法可能。
一個條件循環,一次替換一個空格:
sed -e :1 -e 's/\(\] .*\) /\1:/; t1'
保存前綴,刪除它,替換,恢復前綴:
sed '/\] /{ s//&\ /; h; s/.*\n//; s/ /:/g; H; g; s/\n.*\n//;}'
如果輸入不包含
"] "
.
你可以使用
echo '172.16.1.5] "80 EE 73 2F 0B 40' | sed -r 's/ +/:/g;s/\]:/\] /g'
具有
172.16.1.5] "80:EE:73:2F:0B:40