0

比較的簡単なことをしようとしていますが、その方法がわかりません。

次のようなMACアドレスがあります。

xx:yy:yy:zz:yy:yy

文字列の末尾にある :yy: を :01: になるように変更したいと思います。上記の例を使用すると、次のようになります。

xx:yy:yy:zz:01:yy

基本的に、文字列の最後の : : の間の文字。

私は次のことを試みていましたが、うまくいきませんでした:

echo "$var" | sed 's/:*:*$/:01:/'

これは簡単な質問だと思いますが、何か助けていただければ幸いです。

4

4 に答える 4

2

awk は、この種の問題を解決するのが簡単です:

awk -F: -v OFS=":" '$5="01"'

例:

kent$  echo "xx:yy:yy:zz:yy:yy"|awk -F: -v OFS=":" '$5="01"'
xx:yy:yy:zz:01:yy
于 2013-05-13T22:29:54.240 に答える
2

最後の : の後に 2 文字あると仮定すると、答えは次のようになります。

echo xx:yy:yy:zz:yy:yy | sed 's/\(.*:\).*\(:..\)$/\101\2/'

私の仮定が間違っていると思われる場合は、それを改善できます。

于 2013-05-13T22:23:13.473 に答える
1
echo "$var" | sed 's/[^:]*/01/5'
于 2013-05-14T05:38:09.160 に答える