답변:
gzip -l foo.gz | awk 'NR==2 {print $2}'
압축되지 않은 데이터의 크기를 인쇄합니다.
if LC_ALL=C gzip -l foo.gz | awk 'NR==2 {exit($2!=0)}'; then
echo foo is empty
else
echo foo is not empty
fi
또는 데이터 압축 해제를 시작할 수 있습니다.
if [ -n "$(gunzip <foo.gz | head -c 1 | tr '\0\n' __)" ]; then
echo "foo is not empty"
else
echo "foo is empty"
fi
시스템이 head -c
첫 번째 바이트를 추출 할 필요가 없으면 head -n 1
대신 첫 번째 행을 추출하는 데 사용하십시오.
LC_ALL=C
상처를 줄 수는 없습니다.
read
서브 쉘에서 호출되는대로 행을 인쇄 $line
하지 않으며 부모로 전파되지 않습니다.
tr
수정합니다.
'빈'이라는 의미에서 압축되지 않은 파일이 0 바이트 gzip --list foo.gz
인 경우 압축되지 않은 파일의 크기를 결정하는 데 사용할 수 있으며 파일을 자동화하려면 일부 구문 분석이 필요합니다. 다음과 같이 보입니다 :
$ gzip --list foo.gz
compressed uncompressed ratio uncompressed_name
24 0 0.0% foo
LC_ALL=C
필드를 0과 비교할 수 있도록 gzip이 숫자에 천 단위 구분 기호를 넣지 않도록해야 한다고 가정 합니까?