我想在shell中將一個文件中的字符串替換為另一個字符串,現在使用sed全局替換,但是速度特別慢,後來發現全文沒有換行符,大概10m的文件就一行,sed處理字符串都是以行為單位讀到內存,在內容少的時候處理還挺快,多了就慢的不行,請問有什麼方法可以解決這個問題?
我去,別這麼用啊,你這用法是讓shell
去從aaa
文件讀取,然後通過管道輸入到sed
的stdin
,然後再重定向sed
的輸出到bbb
:
這顯然有更高效的辦法:
sed -s "/s/stra/strb/g" aaa > bbb
如果你是想直接把aaa這個文件改掉,那更簡單:
sed -i "/s/stra/strb/g" aaa