Text-Processing
在流中用 1 替換 0 和反之亦然的最快方法是什麼?
0
給定一個由s 和s組成的字元串1
,我的目標是將 0 替換為 1,反之亦然。例子:輸入
111111100000000000000
預期輸出
000000011111111111111
我嘗試了以下
sed
命令,但未成功echo '111111100000000000000' | sed -e 's/0/1/g ; s/1/0/g' 000000000000000000000
我錯過了什麼?
你可以使用
tr
它,它的主要目的是字元翻譯:echo 111111100000000000000 | tr 01 10
您的
sed
命令將所有 0 替換為 1,從而生成僅包含 1 的字元串(原始 1 和所有替換的 0),然後將所有 1 替換為 0,從而生成僅包含 0 的字元串。在長流上,
tr
比sed
; 對於 100MiB 文件:$ 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