我在一个目录中有* .txt文件,我想在其中搜索每个* .txt文件中'>'的出现。我正在尝试以下命令:
grep '>' *.txt|wc -l
但是它给了我目录中所有事件的总数,而不是一次提供一个文件。
答案 0 :(得分:2)
wc
没用,请使用grep(man grep)的-c参数:
grep -c '>' *.txt
答案 1 :(得分:0)
使用awk。首先是一些测试数据:
$ cat f1
> a > b
> c
$ cat f2
d e
f
awk脚本:
$ awk '
FNR==1 { f[FILENAME]=0 } # define an array element for each file
(c=gsub(/>/,"&")) { # count >s on record
f[FILENAME]+=c
}
END { # in the end
for(i in f) # iterate all files
print i,f[i] # and output
}' f1 f2
输出:
f1 3
f2 0
使用grep
会丢失文件而不会造成点击:
$ grep -Ho \> f1 f2 | cut -d : -f 1 | uniq -c
3 f1