一致するファイル数をgrep
変数という変数に保存するにはどうすればよいですかnf
?
次のコマンドを使用grep
し、計算はwc
。
grep -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" | wc -l
答え1
次のコマンドを含めると、変数に保存されているファイルの数を計算できます$(...)
。
nf=$(grep -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" | wc -l)
別のオプションは伝統的な逆引用符です。
nf=`grep -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" | wc -l`
答え2
ファイル数を見つけてGNU find
(-r
GNU拡張子の最初)を想定するには、NULで区切られたファイルパスを印刷してから、出力からNUL数を計算するように指示できます。
grep --null -rl "${isufx[@]}" -e "$ptrn" -- "${fdir[@]}" |
tr -cd '\0' | wc -c
tr -cd '\0'
NUL(補数)を除くすべての文字を削除し、d
バイト数を計算するために使用されます。c
wc -c
GNUユーティリティの代替grep -zc '^'
はまたはですsed -z '$='
。gawk -v RS='\0' 'END{print NT}'