Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
Regex 在bash中显示多个文件的特定字数_Regex_Bash_Arguments_Word Count - Fatal编程技术网

Regex 在bash中显示多个文件的特定字数

Regex 在bash中显示多个文件的特定字数,regex,bash,arguments,word-count,Regex,Bash,Arguments,Word Count,所以我试图编写一个程序,计算一个单词在某个文件中出现的实例数。我能够找到多少次一个字,一个文件,由 a=`grep -c $1 Samplefile.txt` echo "you matched: $a times for word $1 " 如何对多个文件执行此操作。 我开始工作的第一件事是使用 (程序1字文件)。下一个要求需要我能够为输入执行Program2 word file1 file2只需使用shel glob使grep运行多个文件: grep -c "$1" *.txt 这里,这

所以我试图编写一个程序,计算一个单词在某个文件中出现的实例数。我能够找到多少次一个字,一个文件,由

a=`grep -c $1 Samplefile.txt`
echo "you matched: $a times for word $1 "
如何对多个文件执行此操作。 我开始工作的第一件事是使用
(程序1字文件)。下一个要求需要我能够为输入执行Program2 word file1 file2只需使用shel glob使grep运行多个文件:

grep -c "$1" *.txt
这里,这个
grep
将对所有
*.txt
文件运行,而不仅仅是
Samplefile.txt

输出如下:

abc.txt:3
Samplefile.txt:5
xyz.txt:0
或者,您也可以在for循环中执行相同的操作:

for f in *.txt; do
    grep -Hc "$1" "$f"
done
编辑:根据注释,如果要为已知的文件集运行它,请使用

for f in "XXX" "YYY"; do
    grep -Hc "$1" "$f"
done

如果我只想运行2个文件,而目录中有3个文件,会发生什么。所以我有文件XXX file YYY和文件ZZZ,但我只想对文件XXX和YYY运行它。在这种情况下,您可以运行两次grep作为
grep-c“$1”XXX
grep-c“$1”yyyy
,所以只需使用for循环?程序怎么知道只做两次呢?该程序应该处理您是键入prog1 word文件还是prog1 word文件1 file2。还要提前感谢您的所有意见!!有关如何仅为2个文件运行for循环的已编辑代码,请参见。现在已经很晚了,我只会在早上查看更多的评论。