0

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

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

我如何获得不包含a,b和的单词c

4

2 回答 2

1

With GNU grep you can use

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

The relevant pieces from man are:

  -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...
于 2013-10-08T23:10:43.733 回答
1

尝试这个:

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

因此,“单词”中间也不允许出现空格。

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

 -P, --perl-regexp
          Interpret PATTERN as a Perl regular expression.
于 2013-10-08T23:34:02.687 回答