我只想从文本文件中获取1.txt
不包含字母的单词a
,b
并将c
其导出到2.txt
,但这不会返回任何内容:
grep -o [^abc]*$ 1.txt > 2.txt
我如何获得不包含a
,b
和的单词c
?
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...
尝试这个:
grep -w -o -P '[^abc\s]*' 1.txt > 2.txt
因此,“单词”中间也不允许出现空格。
我也包含了 -P 标志,只是为了将正则表达式解释为 Perl 并允许使用 \s 占位符。
-P, --perl-regexp
Interpret PATTERN as a Perl regular expression.