文字列でスイッチ文字を使用する方法はsed
?数字があり、12345678
2番目と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。