파일이 비어 있으면 알려줍니다.
[[ ! -s $file ]] && echo "hello there I am empty file !!!"
하지만 파일에 공백(공백 또는 탭)이 있는지 확인하는 방법은 무엇입니까?
- 빈 파일에는 공백/TAB이 포함될 수 있습니다.
답변1
grep
공백 이외의 문자에만 작동합니다 .
grep -q '[^[:space:]]' < "$file" &&
printf '%s\n' "$file contains something else than whitespace characters"
답변2
다른 답변과 유사하지만 부정을 사용합니다.grep -q
if ! grep -q '[^[:space:]]' "$file"; then
echo "file is empty"
else
echo "File has data"
fi
답변3
빈 파일 내용을 확인하고 싶다면if 조건 [[ ... ]]
, 그런 다음 grep을 (-q 없이)로 묶습니다 -z $( grep ... )
.
if [[ -z $(grep '[^[:space:]]' $file) ]] ; then
echo "Empty file"
...
fi
실행할 때 다음 오류를 방지하려면 이것을 사용해야 합니다.
$ [[ grep -q '[^[:space:]]' $file ]]
-bash: 조건부 이항 연산자가 필요합니다.
-bash: "-q" 근처의 구문 오류