0
sとsで構成される文字列が与えられた場合、1
私の目標は0を1に変更するか、その逆に置き換えることです。例:
入力する
111111100000000000000
期待される出力
000000011111111111111
sed
私は成功せずに次のコマンドを試しました
echo '111111100000000000000' | sed -e 's/0/1/g ; s/1/0/g'
000000000000000000000
私は何を見逃していますか?
ベストアンサー1
あなたはそれを使用することができますtr
この目的の主な目的は文字翻訳です。
echo 111111100000000000000 | tr 01 10
コマンドsed
は、すべての0を1に置き換えて1のみを含む文字列(元の1とすべて置き換えられた0)を生成し、すべての1を0に置き換えて0のみを含む文字列を生成します。
長いストリームでは、100MiBファイルよりtr
も高速です。sed
$ time tr 10 01 < bigfileof01s > /dev/null
tr 10 01 < bigfileof01s > /dev/null 0.07s user 0.03s system 98% cpu 0.100 total
$ time sed y/10/01/ < bigfileof01s > /dev/null
sed y/10/01/ < bigfileof01s > /dev/null 3.91s user 0.11s system 99% cpu 4.036 total