現在のディレクトリのサブディレクトリにファイルがあり、最後に改行がある場合とない場合があります。末尾に改行がないファイルを見つけるにはどうすればよいですか?
私はこれを試しました:
find . -name '*.styl' | while read file; do
awk 'END{print}' $file | grep -E '^$' > /dev/null || echo $file;
done
しかし、それは機能しません。 awk 'END{print}' $file
と同じように、空の新しい行の前に行を出力しtail -n 1 $file
ます。
awk 'END{print}' $file
:これは$ fileの内容を完全に無視し、 "$ file"に含まれるすべてのファイルの解析が終了した後、改行を追加します。これはawkコマンドが出力する唯一のものであるため、:printf '\n'
($ fileのmentinoなしで)に置き換えて、同じことを行うことができます。これはあなたが目指していたものではないと思います(つまり:ファイルの最後の行を印刷しますか?)
c
はFreeBSDも出力しますが、実装に依存するものとしてドキュメント化されていることに気づきませんでした:gnu.org/software/gawk/manual/…。そのため、必ず発生しますが、常に発生するとは限りません。