2016-11-08 85 views
1

如何使用sed和for循环删除包含方括号中的模式的行。如何使用sed删除带方括号中的模式的行

我在文本文件中有以下几行。

有了第一个指数从0到6和第2指数从0到3

可以说,我只是想看看[6] [0〜3]。所以使这个

portStateReport[2][0].xxxxx 
portStateReport[2][1].xxxxx 
portStateReport[2][2].xxxxx 
portStateReport[6][0].xxxxx 

是像

portStateReport[6][0].xxxxx 

我想到的是类似以下内容:

for ((i = 0; i < 4; i++)); do 
    sed remove lines with patterns like "[2][i]" data.txt 
done 

我也试图与倒置的grep

grep -v "\["6]"\["0] data.txt 

但是,我不知道如何去做让它更具动态性,也可以做[6] [0〜3]。

谢谢。

回答

1

你可以使用grep这个:

grep '\[6\]\[[0-3]\]' file 

portStateReport[6][0].xxxx 
+0

您好我有一个跟进的问题。 – Chanpuru

+0

为什么'\ [[5-10] \] \ [[0-3] \]'不起作用。它似乎grep一切,如果我把范围设置为[5-10] – Chanpuru

+0

在正则表达式中'5-10'并不意味着'5'到'10'。为此,您需要'([5-9] | 10)' – anubhava