文字列内の2文字のペアの順序を変更するには?

文字列内の2文字のペアの順序を変更するには?

任意の長さの16進文字列で、文字1と2、3と4などを自動的に置き換えようとしています。

例:

A627E39B

になる:

6A723EB9

これは、sedまたは他の* nixテキストユーティリティのいずれかを使用して可能になるようですが、これまでのところ例は見つかりませんでした。

ベストアンサー1

逆参照を使用できます。

echo A627E39B | sed 's/\(.\)\(.\)/\2\1/g'

その後、両方の文字が現れることを見つけて、それらを置き換えます。

〜のようにグレンジャックマン拡張正規表現を有効にすると指摘しました(-Etoybox sedGNU、BSD、またはsを含む)括弧をエスケープしないようにするには:

echo A627E39B | sed -E 's/(.)(.)/\2\1/g'

おすすめ記事