Linuxコマンドについて質問があります。 aからgまでのすべてのファイルを計算する方法は?
答え1
LC_ALL=C
set -- [a-gA-G]*
if [ "$1" = '[a-gA-G]*' ]; then
echo 0
else
echo "$#"
fi
答え2
1行のシェルコマンドでこれを行うことができます。
find / -name '[abcedfg]*' -print | wc -l
find
あるディレクトリまたは別のディレクトリを読み取る権限がないというメッセージが表示されますが、名前がこの7文字で始まるファイル数を取得できます。
答え3
(Linuxを実行しているため使用しています)この ls
コマンドのGNU実装は、現在のディレクトリで文字agで始まるすべてのファイルを探します。
ls --ignore='[!a-g]*'
範囲内の文字で始まらないすべてのファイルを無視するように指示します[a-g]
。!
フィルタを裏返します。*
指示する
次に、出力を実行してwc -l
行数を計算します。
完全なコマンドは次のとおりです。
ls --ignore='[!a-g]*' | wc -l
このソリューションはサブディレクトリに重複しません。
答え4
ls -1 [a-g]* | wc -l
なぜですか?おそらくあなたは最も簡単な答えが欲しいので、これは私が最もよく使うコマンドであるディレクトリを数えたり、サブディレクトリを検索したり、ファイル名を大文字にすることを心配する必要はないと思います。