index.html이라는 파일이 있고 이를 압축하여 압축된 크기를 표시하려고 한다고 가정해 보겠습니다. 알았어 내가 할게...
bzip2 index.html -v
이제 모든 데이터 비트/바이트, 압축 비율, 입력 및 출력 압축이 제공됩니다. 내가 숫자(내 경우에는 20)를 원한다고 가정해 보겠습니다. 글쎄, 이것이 내가 시도한 것이고 다른 경우에는 gzip과 작동하며 문제가 없습니다.
그래서 일반적으로 awk
이렇게 사용합니다(하지만 작동하지 않습니다).
bzip2 index.html -v | awk '{print $4}'
나도 시도했다
bzip2 index.html -v | cut -f4
위의 시도는 -v가 제공하는 것만 생성하며, 내가 원하는 정보만 추출하지는 않습니다. 다음은 압축된 index.html 파일의 샘플 출력입니다.
bzip2 index.html -v
index.html: 0.346:1, 22.00 bits/bytes, -175.00% saved, 20 in, 55 out
저는 "20 in", 더 구체적으로 숫자 20을 입력하려고 합니다.
답변1
bzip2
이 정보를 stderr에 인쇄하세요. 이는 표준 출력을 사용하거나 압축을 풀 때 오류 메시지가 압축이 풀린 데이터와 bzip2 -dc
혼합 되는 것을 방지합니다 bzcat
. awk에 stderr을 보내야 합니다.
내 bzip2는 이 형식을 생성합니다.
$ bzip2 index.html -v
index.html: 1.444:1, 5.542 bits/byte, 30.73% saved, 179 in, 124 out.
stderr를 stdout으로 리디렉션하고 awk를 사용하여 압축 정도를 선택합니다.
$ bzip2 index.html -v 2>&1 | awk '{print $5}'
30.73%
쉘에서는 표준 입력, 표준 출력, 표준 오류가 0
있습니다 . 표준 오류( )를 가져와 표준 출력( )으로 보내도록 쉘에 지시합니다 .1
2
2<&1
2
1