SharedIT | 묻고 답하기(AMP)

grep을 이용한 tar / gz /bz / zip 압축파일 안 파일 내용 검출방법문의

안녕하세요. 

압축파일을을 가지고 압축파일 안에 있는 내용을 grep으로 검색을 하고 싶습니다.

zgrep 을 써보니 zip에서 제대로 적용되지 않고, tar.gz도 정확한 내용확인이 어렵고, 그나마 gz파일이 출력이 되고 있더군요. 
하지만 -R, -r옵션을 추가로 사용할 수가 없어 혹시 grep을이용하여 압축파일안 내용을 검색할 수 있는 다른 명령어가 존재할까요?
Tags : 태그가 없습니다.

4개의 답변이 있습니다.

wansoo
  0 추천 | 5년 이하 전
tar로 묶여 있는 파일 내용 내용에 대해 추출해서 디렉토리에 저장하지 않고, grep 명령으로 내용을 검색해 볼 수 있는 방법이 없냐? 에 대한 질문으로 보여 지는데요.
디렉토리에 풀은 후에 grep 명령을 사용하면 다시 삭제해줘야 하는 번거로움이 있기 때문에 그런게 아닌가 하는 생각이 들고요.

file을 directory에 풀어 내지 않고,  standard out인 console로 뿌려 주면서 pipe를 사용해서 grep하면 원하는 목적을 얻을 수 있지 않을까 싶네요.

아래와 같이 명령을 사용해 보면 어떻까요..?

tar xvfOz  tt.tar.gz | grep t2test

여기서 x v f z에 대한 명령은 알거라 생각되고,
--to-stdout 인 표준 출력으로 파일을 추출하는 역할로  O 명령을 넣었네요.  
enterenable
  0 추천 | 5년 이하 전
현재 zgrep(1.50버전)이라는 명령어를 사용하면 압축된 파일안에 있는 파일에 대한 내용을 출력할 수는 있습니다. 단 grep에 명령어 중에 -r -R옵션을 사용하여 혹시나 모를 하위 폴더까지 검색을 시도하게 하고 싶은데 zgrep 에서는 해당 명명령어를 지원하지 않더군요. 


일반 적인 결과 를 복사하여 첨부합니다.

[조건]
[root@localhost text2]# tar -tvf tt.tar.gz
drwxr-xr-x root/root         0 2019-06-05 08:28 a1/
-rw-r--r-- root/root         7 2019-06-05 08:23 a1/t1.txt ->안에 내용은 t1test
drwxr-xr-x root/root         0 2019-06-05 08:26 a1/a2/
lrwxrwxrwx root/root         0 2019-06-05 08:26 a1/a2/t2-s.txt -> ../t2.txt ->t2와 심볼링크로 인해 내용 동일
-rw-r--r-- root/root         7 2019-06-05 08:28 a1/t2.txt ->안에 내용은 t2test


[root@localhost text2]# zgrep -a t2test tt.tar.gz -->tt.tar.gz안 't2test'라는 문자를 가지고 있는 것을 출력하라
a1/a2/0000755000000000000000000000000013475577021010372 5ustar  rootroota1/a2/t2-s.txt0000777000000000000000000000000013475577021013216 2../t2.txtustar  rootroota1/t2.txt0000644000000000000000000000000713475577265011165 0ustar  rootroott2test
차바라기
  0 추천 | 5년 이하 전
cat명령어도 있네요~이것도 사용해보세요 cat과 grep조합으로 사용을 해보면 검색이 쉬워집니다.
차바라기
  0 추천 | 5년 이하 전
grep 명령어 옵션은 -c,-H,-i,-n,-r,-v,-w옵션이 있는데 다 해보셨는지요?아니면 find명령어도 있는데 이 명령어도 사용해보세요

enterenable | 5년 이하 전

빠른 답변 감사합니다. 제가 아마 질문의 결론이 좀 어중간한 부분이 있었네요. 제가 원하는건 압축된 파일안에 있는 파일에 이름이 아닌 그 파일 안에 있는 내용을 검색으로 보고 싶습니다... (아래 답변으로 달려있으니 사진 확인해주세요~)

차바라기 | 5년 이하 전

네..그렇군요~