私はこれを使って ".txt"ファイルのすべての名前を1つのファイルに入れます。
find . -name "*.txt" | sort > txtfile
txtfileにリストされているすべてのファイルの最初の20行をすべて表示する方法(または20行未満の場合は空白行を提供)は何ですか?
ベストアンサー1
ファイル名はファイル内の改行で区切られているため、txtfile
各ファイルを読み取り、行数が同じか(または20より大きいか)を確認し、その場合は最初の20行を印刷し、そうでない場合は残りの行の改行を印刷できます。 :
while IFS= read -r f; do
lines=$(wc -l <"$f")
if (( lines < 20 )); then
cat -- "$f"
for ((i=20; i>lines; i--)); do
echo
done
else
head -20 -- "$f"
fi
done <txtfile