2017-05-04 85 views
0

我想解釋一下我的問題,但它更容易只是將代碼粘貼SED腳本 - 排除自

test.sh

sed -i '/192.168.1.1/d' * 

我希望它排除自身此搜索中,我將如何去關於這樣做?

+1

你可以只把腳本在不同的目錄。 – Barmar

+0

我可以,但我正在使用ADS隱藏在calc.exe中的自動化過程,我很懶,所以我寧願它只是在同一個目錄中 – Daniel

+1

您應該使用'sed -i'/ 192 \ .168 \ .1 \ .1/d'*',以便它不符合'192.168.101.44',並且另外看看如何定位它以避免匹配'192.168.1.13'。這會產生不觸發錯誤的奇怪副作用(儘管您也應該使用chepner的解決方案)。 –

回答

4

最簡單的解決方案是使用bash的延長圖案的語法。

shopt -s extglob 
sed -i '/192.168.1.1/d' !(test.sh) 

模式!(test.sh)匹配一切除了test.sh

+0

是否需要啓用以'禁用了javascript -s extglob'? –

+2

是的;否則,你會因爲出現一個語法錯誤而抱怨一個意外的'('在'!'後面,因爲它不希望子shell在那裏啓動。 – chepner