Sed
sed 使用 -i 標誌就地修改
我是新手
GNU sed
(在 macOS 上執行)並希望縮短一些文件頭(~50 K 頭,78.3 Mb)。我正在嘗試通過指定帶有
-i
標誌的備份副檔名來修改 FASTA 文件。到目前為止我有
sed -i.bak 's/^([^|]+).[^|]+(.*)/\1\2/' file.fas
這應該創建一個名為
file.fas.bak
.但是,我收到了錯誤
sed: 1: "s/^([^|]+).[^|]+(.*)/\1\2/": \1 not defined in the RE
注意
sed -re 's/^([^|]+).[^|]+(.*)/\1\2/' file.fas
正確列印到螢幕。在這種情況下如何列印到備份文件有什麼想法嗎?
您還必須指定該
-r
選項,以啟用擴展正則表達式語法的解釋(但請注意,-E
它比它更可移植-r
並且很快將取代它),因此您應該使用sed -E -i.bak 's/^([^|]+).[^|]+(.*)/\1\2/' file.fas
或者,求助於基本的正則表達式:
sed -i.bak 's/^\([^|]\{1,\}\).[^|]\{1,\}\(.*\)/\1\2/' file.fas