bash +ファイルが空であることを確認する方法

bash +ファイルが空であることを確認する方法

私たちが知っているように、この構文はファイルを空白として印刷します。

[ -s file.name ] || echo "file is empty"

しかし、ファイルにスペース、TAB、またはスペースがある場合はどうなりますか?しかし、az 1-9などのような実際の文字はありません。

だから私はこれを使う

[[ $(tr -d "\r\n" < file.name |wc -c) -eq 0 ]] && echo "File has no content"

しかし、私たちがそれを設定したとき

echo "       " >file.name

これにより、次の構文は印刷されません。ファイルに内容がありません。

 [[ $(tr -d "\r\n" < file.name |wc -c) -eq 0 ]] && echo "File has no content" 

だから私たちは困っていました。

ファイルが空ですが、スペース/タブ/スペースを含めることができるかどうかを含めることができるかどうかを確認する方法

目標 - ファイルが空白であるが空白/タブ/空白行を含めることができるか、空白/空白行/空白タブなしで空であることを確認します。

ベストアンサー1

そしてgrep:

grep -q '[^[:space:]]' file.name || echo "file is empty or unreadable"
  • grep '[^[:space:]]' file.name- 空白以外の文字が見つかった場合にのみ出力が生成されます[^[:space:]]
  • -q空白以外の文字が見つかったかどうかを示す終了状態のみを維持するように出力を抑制します。

おすすめ記事