結(jié)合兩個sed命令我有一個文件r。我想更換的話File,并MINvac.pdb在里面什么也沒有。我使用的命令是sed -i 's/File//g' /home/kanika/standard_minimizer_prosee/r和sed -i 's/MINvac.pdb//g' /home/kanika/standard_minimizer_prosee/r我想將兩個sed命令合并為一個,但我不知道如何。有人可以幫忙嗎?該文件如下所示:-6174.27 File10MINvac.pdb-514.451 File11MINvac.pdb4065.68 File12MINvac.pdb-4708.64 File13MINvac.pdb6674.54 File14MINvac.pdb8563.58 File15MINvac.pdb
2 回答

猛跑小豬
TA貢獻1858條經(jīng)驗 獲得超8個贊
sed
是一種腳本語言。用分號或換行符分隔命令。許多sed
方言還允許您將每個命令作為單獨的-e
選項參數(shù)傳遞。
sed -i 's/File//g;s/MINvac\.pdb//g' /home/kanika/standard_minimizer_prosee/r
我之前添加了一個反斜杠來正確引用文字點pdb
,但在這個有限的上下文中可能并不重要。
為了完整起見,這是換行符。許多新手感到困惑,shell允許引用字符串中的文字換行符,但它可以很方便。
sed -i 's/File//g s/MINvac\.pdb//g' /home/kanika/standard_minimizer_prosee/r
當(dāng)然,在這種有限的情況下,您還可以將所有內(nèi)容組合成一個正則表達式:
sed -i 's/\(File\|MINvac\.pdb\)//g' /home/kanika/standard_minimizer_prosee/r
(有些sed
方言會想要這個沒有反斜杠,和/或提供一個使用擴展正則表達式的選項,它們應(yīng)該被省略.BSD sed
,也就是MacOS sed
,要求一個強制參數(shù)sed -i
,但是它可以是空的,比如sed -i ''.
)

aluckdog
TA貢獻1847條經(jīng)驗 獲得超7個贊
使用-e
標(biāo)志:
sed -i -e 's/File//g' -e 's/MINvac.pdb//g' /home/kanika/standard_minimizer_prosee/r
一旦獲得的命令多于方便用-e
s 定義的命令,最好將命令存儲在單獨的文件中并將其包含在-f
標(biāo)志中。
在這種情況下,您將創(chuàng)建一個包含以下內(nèi)容的文件:
s/File//gs/MINvac.pdb//g
我們稱該文件為“sedcommands”。然后你就像這樣使用sed:
sed -i -f sedcommands /home/kanika/standard_minimizer_prosee/r
只使用兩個命令,使用單獨的命令文件可能不值得,但如果要進行大量轉(zhuǎn)換,則非常方便。
- 2 回答
- 0 關(guān)注
- 854 瀏覽
添加回答
舉報
0/150
提交
取消