안녕하세요.
압축파일을을 가지고 압축파일 안에 있는 내용을 grep으로 검색을 하고 싶습니다.
zgrep 을 써보니 zip에서 제대로 적용되지 않고, tar.gz도 정확한 내용확인이 어렵고, 그나마 gz파일이 출력이 되고 있더군요.
하지만 -R, -r옵션을 추가로 사용할 수가 없어 혹시 grep을이용하여 압축파일안 내용을 검색할 수 있는 다른 명령어가 존재할까요?
압축파일을을 가지고 압축파일 안에 있는 내용을 grep으로 검색을 하고 싶습니다.
zgrep 을 써보니 zip에서 제대로 적용되지 않고, tar.gz도 정확한 내용확인이 어렵고, 그나마 gz파일이 출력이 되고 있더군요.
하지만 -R, -r옵션을 추가로 사용할 수가 없어 혹시 grep을이용하여 압축파일안 내용을 검색할 수 있는 다른 명령어가 존재할까요?
4개의 답변이 있습니다.
디렉토리에 풀은 후에 grep 명령을 사용하면 다시 삭제해줘야 하는 번거로움이 있기 때문에 그런게 아닌가 하는 생각이 들고요.
file을 directory에 풀어 내지 않고, standard out인 console로 뿌려 주면서 pipe를 사용해서 grep하면 원하는 목적을 얻을 수 있지 않을까 싶네요.
아래와 같이 명령을 사용해 보면 어떻까요..?
tar xvfOz tt.tar.gz | grep t2test
여기서 x v f z에 대한 명령은 알거라 생각되고,
--to-stdout 인 표준 출력으로 파일을 추출하는 역할로 O 명령을 넣었네요.
일반 적인 결과 를 복사하여 첨부합니다.
[조건]
[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
enterenable | 5년 이하 전
차바라기 | 5년 이하 전