input.txt
という名前の100個のサブフォルダのそれぞれにテキストファイルがありますsample_1, ..., sample_100
。
input.txt
以下を使用して、すべてのファイルの最初の行を抽出できます。
find -name input.txt -exec awk 'FNR == 1 {print $0}' > out.txt {} \;
input.txt
ただし、これは現在のディレクトリ内のファイルのすべての最初の行を印刷しますout.txt
。
私が望むのは、各サブフォルダ内の対応する特定のサブフォルダout.txt
の最初の行です。input.txt
たとえば、out.txt
内部sample_57
サブフォルダの最初の行input.txt
はですsample_57
。
これを達成する方法のアイデア。
ベストアンサー1
head
代わりに使用してくださいawk
。また、代わりに-execdir
、-exec
実行したいコマンドを読みやすくします。
find -type f -name input.txt -execdir sh -c 'head -1 input.txt > out.txt' \;