질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

awk 명령어에 대해서 설명좀 부탁드립니다.

작성자 정보

  • 김형진 작성
  • 작성일

컨텐츠 정보

본문

안냐세요!! 리눅스 초보입니다.
다름이 아니라 공부 중에
ls -l /home | grep "^d" | awk "{print "tar cvfpz "$9"\.tar\.gz" "\/home\/"$9}'
라는 것이 나왔는데요...
grep "^d"까지는 알거든여?! 근데 awk "{print "tar cvfpz "$9"\.tar\.gz" "\/home\/"$9}'의 의미를
잘 모르겠어요
print명령어랑 $9,\ 및 {}중괄호여~~
print,$,\,{}는 only awk에서만 사용되는것인가요?? 아님 다른 명령어에서도 같은 의미로 사용되나요??
고수님들!! 도와주세요

관련자료

댓글 2

족구왕슛돌이님의 댓글

  • 족구왕슛돌이
  • 작성일
프로그램은 아예 못 짜구요..ㅠ
음...
예를 들어 ps -ef | grep httpd | awk '{print $2}' 하면 httpd의 pid만 나와요
print $2 2번째 열을 출력하라 이런 뜻이구요
\는 . < 기호 앞에 넣어요

LUFFY님의 댓글

  • LUFFY
  • 작성일
awk 에 대한 설명은 man awk 해보시면 나와요.
기본적인 awk '{print $1}' 는 첫번째 열을 출력하는 겁니다.

awk는 열 구분을 할때 사용합니다. 옵션이 없을경우에는 탭이나 빈칸을 열구분자로 인식을 합니다.
: 를 열구분자로 사용할 경우에는 -F: 라는 옵션이 들어가구요.

\ 는 스크립트들에서 많이 들어가는데 특수기호를 일반문자열로 인식시킬때 사용합니다.

위 스크립트를 사용하게되면 /home 에 있는 디렉토리들이 모두 tar.gz 파일로 압축하는 명령어가 생성되겠네요.
예를들어 /home/suidc 라는 디렉토리가 있으면
위 명령어에서
tar cvfpz suidc.tar.gz /home/suidc 로 인식하게 되는거죠.

명령어가 약간 이상한데요?
ls -l /home | grep "^d" | awk '{print "tar cvfpz "$9".tar.gz /home/"$9}'
이렇게 하면 되실텐데..

근데 스크립트 중에 있나봐요? 그냥 명령어로 실행시킬때는 \ 가필요없는데..

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  112 명