いくつかのファイルを含むディレクトリ「FOO」があるとしますプログラムのNUL出力をbashスクリプトに保存する方法は?
ls foo:
1.aa 2.bb 3.aa 4.cc
はbashスクリプトでは今、私は「FOO」内の特定の接尾辞を持つファイルの数、および表示をカウントしますそれら、例えば:
SUFF='aa'
FILES=`ls -1 *."$SUFF" foo`
COUNT=`echo $FILES | wc -l`
echo "$COUNT files have suffix $SUFF, they are: $FILES"
問題がある:1
に等しいもあればSUFF='dd'
、$COUNT
。 googleの後、私が見つけた理由はSUFF='dd'
、$FILES
が空の文字列であり、実際にはプログラムのヌル出力ではなく、wc
で1行とみなされます。 NUL出力はパイプを介してのみ渡すことができます。だから、一つの解決策は以下のとおりです。
COUNT=`ls -1 *."$SUFF" foo | wc -l`
が、これはls
コマンドを2回実行されることにつながります。だから私の質問です:これを達成するためのよりエレガントな方法はありますか?
ファイル名が 'foo'で終わりますか?そのようなサンプル名を1つ与えることはできますか?サブディレクトリでも再帰的に検索しますか? – Inian
fooはディレクトリです。ファイル名は、aa、bb、ccで終わります。サブディレクトリを検索する必要はありません。 – xlwang