如何获得没有这些字符的单词?

时间:2013-10-08 22:49:25

标签: regex bash shell

我想从文本文件1.txt获取不包含字母abc的字词,并将其导出到2.txt },但这不会返回任何内容:

grep -o [^abc]*$ 1.txt > 2.txt

如何获取不包含abc的字词?

2 个答案:

答案 0 :(得分:1)

使用GNU grep,您可以使用

grep -w -o '[^abc]*' 1.txt > 2.txt

man的相关内容是:

  -w, --word-regexp
          Select only those lines containing matches that form whole words...

  -o, --only-matching
          Print  only  the  matched  (non-empty)  parts  of  a  matching line...

答案 1 :(得分:1)

试试这个:

grep -w -o -P '[^abc\s]*' 1.txt > 2.txt

因此,“词”中间也不允许有空格。

我只包含-P标志,以便将正则表达式解释为Perl并允许\ s占位符。

 -P, --perl-regexp
          Interpret PATTERN as a Perl regular expression.