1. 특정 패턴의 문자들을 원하는 포맷으로 처리하는 강력한 유틸리티 awk 개론

 – awk 는 기본적으로 탭 또는 공백으로 구분되는 각각의 단어들을 하나의 변수로 처리함. 탭과 공백을 기본적인 구분문자로 사용한다는 의미임.

 – 탭과 공백을 무시하고 특정문자( 🙁 콜론 ) ;( 세미콜론 ) ,( 콤마 ) 등 ) 를 구분문자로 처리하고자 한다면 -F 옵션을 사용하면 됨.

 – -F 옵션 다음에 원하는 특정문자를 지정하면 그 문자를 구분문자로 하여 각각의 단어들을 변수로 처리할 수 있음.

 – 사용형식 : awk [ 옵션 ] ‘스크립트’ [ 변수=값 ] [ 파일… ]
                      awk [ 옵션 ] [ -F ] ‘{ 스크립트 }’

 2. /etc/passwd 파일에서 계정명( ID ) 만 출력하기

 – cat /etc/passwd | awk -F: ‘{print $1}’

 3. /etc/passwd 파일에서 각각의 ID 와 홈디렉토리만을 출력하기

 – cat /etc/passwd | awk -F: ‘{print $1″           “$6}’

 – 각각의 ID 와 홈디렉토리를 조사하고자 할 때에 주로 사용되는 방법임.

 4. /etc/passwd 파일을 이용한 /etc/group 파일내용 만들기

 – cat /etc/passwd | awk -F: ‘{print $1″:x:”$4″:”}’

 5. /etc/passwd 파일을 이용한 /etc/shadow 파일내용 만들기

 – grep home /etc/passwd | awk -F: ‘{print “grep “$1″ /etc/shadow”}’

 –
” grep home /etc/passwd ” 의 의미는 /etc/passwd 파일내에서 home 이라는 문자를 가진 행들은
모두 출력하라는 것임. 즉, /etc/passwd 파일에서 실계정을 사용하는 계정들이라면 그 홈디렉토리가 home 이라는 것에서
착안한 것.

 6. /home 디렉토리의 각 계정별로 압축하는 명령어 만들기

 – ls -l /home | grep “^d” | awk ‘{print “tar xvfpz ” $9″.tar.gz” “/home/”$9}’

 – 명령어 실행의 결과를 vi 로 작성후 맨 첫번째 행에 반드시 #!/bin/bash 를 입력한다.

 7. 각각 다른 여러디렉토리 내에 동일한 파일을 vi 로 수정하는 명령어 만들기

 – ls -l | grep “^d” | awk ‘{print “vi “$9″/home.html”}’3

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.