grep行不包含字符列表

时间:2014-09-13 20:35:13

标签: awk grep

我的行可以包含字母数字或其中任何一个字符,;/-_。 我想打印包含上面列出的字符的任何行,即使它们有上面列出的字符

我试过这个

egrep  '^[[:alnum:]]|\-|\_|\/|\:\,$'

它没有帮助我

示例: -

cat fc
2
a
A
-
_
/
?

egrep -nv '^[[:alnum:]]|\-|\_|\/$' fc
7:?

但是当我把它插入字符串的中间时:

cat fc_v1
hello
hello1
helloA
h@llo
h?llo

egrep -nv '^[[:alnum:]]|\-|\_|\/$' fc_v1

但它不起作用。如何在角色中显示角色?

期望是打印

H + llo0

H + LLO

因为他们没有列出的字符

幸运的是我能够通过

实现它

egrep -n' [^ _ [:alnum:] | - | _ | /]' fc_v1

现在实际要求似乎不适用于上述语法

cat fc_v2

/ a /?hello -sec = sys,rw,root = c; g,nosuid

/ h / hello02 -sec = sys,rw,root = c,nosuid

/ h / @ hello_ -sec = sys,rw,root = c,nosuid

/ h / helloA -sec = sys,rw,root = c,nosuid

egrep -n' [^ _ [:alnum:] | / | _ | - | \,| \ =]' fc_v3

1:/ a /?hello -sec = sys,rw,root = c; g,nosuid

2:/ h / hello02 -sec = sys,rw,root = c,nosuid

3:/ h / @ hello_ -sec = sys,rw,root = c,nosuid

4:/ h / helloA -sec = sys,rw,root = c,nosuid

它打印所有行,预期只有第3行和第1行

1 个答案:

答案 0 :(得分:0)

听起来你可能在寻找:

$ grep '[^-[:alnum:]_/:,]' file
h@llo
h?llo

但这是猜测,因为你没有发布样本输入的预期输出。