2017-05-04 70 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