sedを使用して文字列の文字を切り替える

sedを使用して文字列の文字を切り替える

文字列でスイッチ文字を使用する方法はsed?数字があり、123456782番目と4番目の数字を変更したいとします(例:数字= 14325678)。

答え1

括弧を使用して式の一部をグループ化し、グループインデックスを使用して別の順序で\nグループを呼び出しますn。例えば

$ echo 12345678 | sed -E 's/(.)(.)(.)(.)/\1\4\3\2/'
14325678

答え2

次のようなさまざまな方法でこれを実行できます。

 echo 12345678 |
 sed -e '
    s/./&\n/4
    s/./\n&/2
    s/\n\(.\)\(.*\)\(.\)\n/\3\2\1/
 '
 14325678

 perl -lne 'print+(unpack "AAAAA*")[0,3,2,1,4]' 

 perl -F -lane '@F[1,3] = @F[3,1];print @F'

 awk -F "" '{t=$2;$2=$4;$4=t}1' OFS=

awkを使用して空の文字列を分割して各文字をフィールドにし、それを混合してOfs varを介してstdoutにインポートします。

Perlを使用してASCIIテンプレートを使用して文字列を解凍し、順序を並べ替えて最後に標準出力に印刷します。デフォルトでは、Ofsは空です。

sed を使用して、最初に反転する必要がある文字を表示します。次に、最後のステップでマーカーを使用して交換します。この方法は、変更する2文字の位置に応じてサイズ変更されます。

HTH。

関連情報