2017-09-07 2 views
0

ディレクトリ内のディレクトリを除くすべてのファイルを連結したいとします。ディレクトリ内のファイルのみをどのように連結しますか?

私は、連結ファイルの行を取得するには

cat * | wc -l 

を実行しようとしましたが、私はディレクトリを除外することができませんでした。

どうすればこの問題を解決できますか?

+0

誰かが別の場所で同じ質問をしました。ご覧ください:https://unix.stackexchange.com/questions/48492/list-only-regular-files-but-not-directories-in-current-directory – Erik

答えて

2

catは自動的にディレクトリをスキップするので、取得する番号はすでに正しいです。唯一のことは、あなたはそれがそれらをスキップ言ってますが、あなたは/dev/nullにそれらをリダイレクトすることができ、警告です。

cat * 2> /dev/null | wc -l 
+0

ありがとうございます。この行にディレクトリを指定する方法はありますか?たとえば、次の2行を1行にしたいと考えています。cd〜/ data/email/spam; cat * 2>/dev/null | wc -l – user6792790

+0

また、 "2 *"をなぜ行ったのかよく分かりません。 – user6792790

+0

'cat〜/ data/email/spam/* 2>/dev/null | wc -l'2はstderrのファイル記述子番号であり、変更しないでください –

1

あなたが見つける使用することができ、例えば:

find . -type f -maxdepth 0 | xargs cat| wc -l 
関連する問題