Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux终端中使用grep命令获取四个字母的单词列表?_Linux_Unix_Count_Grep - Fatal编程技术网

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

如何在Linux终端中使用grep命令获取四个字母的单词列表?,linux,unix,count,grep,Linux,Unix,Count,Grep,我需要在Linux shell中使用grep命令获取四个字母的单词数。我的想法是创建一个由四个字母组成的单词列表,然后使用带有|wc-l的管道 我对Linux非常陌生,但我尝试了以下方法: cat your_file | grep -c '^[ \t]*[a-zA-Z]\{5\}[ \t]*$' 及 使用以下Perl一行程序: perl -lne 'print for /\b([A-Za-z]{4})\b/g' in_file 例如: echo 'ABCD abcd abcd1 abcd_

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

我对Linux非常陌生,但我尝试了以下方法:

cat your_file | grep -c '^[ \t]*[a-zA-Z]\{5\}[ \t]*$'


使用以下Perl一行程序:

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'
输出:

ABCD
abcd
Abcd
Abcd
Perl one liner使用以下命令行标志:
-e
:告诉Perl在线查找代码,而不是在文件中。
-n
:一次循环输入一行,默认情况下将其分配给
$。
-l
:在行内执行代码之前,请先去掉输入行分隔符(
“\n”
,默认情况下在*NIX上),然后在打印时附加它

[A-Za-z]{4}
:任何4个字母的单词=一个字母,大写或小写,正好出现4次。
([A-Za-z]{4})
:上面的括号用于捕获4个字母的单词。
\b([A-Za-z]{4})\b
:在上面,两边有一个单词边界
\b
,使其成为一个单独的单词。
print for/(…)/g
:迭代捕获的模式并打印所有出现的内容

正则表达式使用此修饰符:
/g
:多个匹配项

另请参见:




使用以下Perl单行程序:

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'
输出:

ABCD
abcd
Abcd
Abcd
Perl one liner使用以下命令行标志:
-e
:告诉Perl在线查找代码,而不是在文件中。
-n
:一次循环输入一行,默认情况下将其分配给
$。
-l
:在行内执行代码之前,请先去掉输入行分隔符(
“\n”
,默认情况下在*NIX上),然后在打印时附加它

[A-Za-z]{4}
:任何4个字母的单词=一个字母,大写或小写,正好出现4次。
([A-Za-z]{4})
:上面的括号用于捕获4个字母的单词。
\b([A-Za-z]{4})\b
:在上面,两边有一个单词边界
\b
,使其成为一个单独的单词。
print for/(…)/g
:迭代捕获的模式并打印所有出现的内容

正则表达式使用此修饰符:
/g
:多个匹配项

另请参见: