我如何在Linux终端使用grep命令获得一个四字母单词的列表?

1 人关注

我需要使用Linux shell中的grep命令获得四字母单词的数量。我的想法是创建一个四字母单词的列表,然后用一个 | wc -l 的管道。

我对Linux相当陌生,但我已经尝试了以下方法。

cat your_file | grep -c '^[ \t]*[a-zA-Z]\{5\}[ \t]*$'
grep -o -w "\w\{5\}" your_file
    
linux
unix
count
grep
doelie247
doelie247
发布于 2020-11-20
1 个回答
Timur Shtatland
Timur Shtatland
发布于 2020-11-20
已采纳
0 人赞同

Use this Perl one-liner:

perl -lne 'print for /\b([A-Za-z]{4})\b/g' in_file
echo 'ABCD abcd abcd1 abcd_ Abcd,Abcd.' | perl -lne 'print for /\b([A-Za-z]{4})\b/g'

Output:

Perl单行程序使用这些命令行标志。
-e:告诉Perl在行内寻找代码,而不是在文件中寻找。
-n:每次循环输入一行,默认分配给$_
-l:在行内执行代码前剥离输入行分隔符(*NIX上默认为"\n"),并在打印时追加。

替换代码8】:任何4个字母的单词=一个字母,大写或小写,正好有4次出现。
([A-Za-z]{4}):以上,括号用于捕捉4个字母的单词。
\b([A-Za-z]{4})\b:上述内容,两侧有一个词的边界\b,使其成为一个独立的词。
替换代码12】:对捕获的模式进行迭代,并打印所有出现的情况。

The regex uses this modifier:
/g: 多次匹配。