.txt
100バイトより長いすべてのファイルの最初の行を印刷したいです。これまでの基準を満たすファイルを収集しましたが、ファイルの最初のテキスト行を印刷する方法がわかりません。
find -size +100c -name "*.txt"
それとも私が完全に間違った道を行っているのでしょうか?
ベストアンサー1
head -n 1
各ファイルに対して実行する必要があります。
find . -size +100c -name '*.txt' -execdir head -n 1 {} \;
またはfind
サポートしていない場合-execdir
、
find . -size +100c -name '*.txt' -exec head -n 1 {} \;
あなたのhead
バージョンがそれをサポートする-q
か、単一の呼び出しで複数のファイルを処理するときに各ファイルに表示されるヘッダーを気にしない場合は、次のように2つのバリエーションを少し効率的にすることができます。
… -exec head -q -n 1 {} +
(望むより競争条件と-exec
利点を理解してください-execdir
。 )