Liang2's Blog

About | Talks | Archives

清除 ^H

中文輸入我用嘸蝦米,在打中英文切換時候,很容易打出 \x08 這東西,在 vim 就會顯示成 ^H,功能是 Backspace,但在一般 GUI 環境裡,可能就會因為它而把前面的字吃掉。

因此今天寫了個小腳本可以把清掉當目錄底下的文字檔的 ^H

ag -l '\x08' | xargs sed -i '' 's/\x08//'

ag 能夠換成比較慢但內建就有的 grep,參數兩者是相容的。

如果要順便印出改了哪些檔案的話:

echo 'Found ^H in the following files:'
ag -l '\x08' | tee /dev/fd/2 | xargs sed -i '' 's/\x08//'

用 tee 把 stdout 導向到 stderr 還蠻有趣的,以前都不知道這樣用。