3/09/2016

Shell Script의 Sed 와 AWK (수정중)

1. Shell Script 기본예제 

기존보다 더 정리가 잘된 사이트를 찾음
  https://blog.gaerae.com/2015/01/bash-hello-world.html
  https://ryanstutorials.net/bash-scripting-tutorial/bash-if-statements.php

2. sed 기본사용

sed(stream editor) 약자이며, 흔히 Shell Script or vim에서 사용되는 교환 command이다.

문자열을 치환하거나 삭제할때 많이 사용되어지고 있다.
현재 간단히 테스트만 해보고 자세한 부분은 추후 시간이 될때 테스트해봐가면 익히자


$ vi test.sh 
#!/bin/bash

STR1="abc"
STR2="abc"
STR3="abc"

echo "Check STRING:  $STR1 $STR2 $STR3"
$ cp test.sh test1.sh

$ bash test.sh
Check STRING:  abc abc abc

$ sed -i 's/abc/def/g' test1.sh //  test.sh 파일에서 abc -> def 변환 한 후 저장 (미출력)
$ bash test1.sh
Check STRING:  def def def

$ sed 's/abc/def/g' test.sh   //  test.sh 파일에서 abc -> def 변환한 것을 화면에 출력만 하고 변경사항 test.sh 미저장 
#!/bin/bash

STR1="def"
STR2="def"
STR3="def"

echo "Check STRING:  $STR1 $STR2 $STR3"


관련링크 (설명이 잘되어있음)

  https://en.wikipedia.org/wiki/Sed
  http://vim.wikia.com/wiki/Search_and_replace
  http://milli.tistory.com/14

  https://www.shellscript.sh/variables2.html

3. awk 사용

Shell Script 혹은 명령어를 사용 도중에 특정 Column의 Row의 출력을 하고 싶을때 유용한것 같다
이밖에 다양한 기능이 있는 것 같은데, 좀 더 익숙해지면 익히자


$ df | awk 'NR == 2 {print $4}'    // NR Column , print $4 Row 
$ df | awk 'NR == 1 {print $4}'                         


관련링크 (설명)
  https://en.wikipedia.org/wiki/AWK
  https://www.gnu.org/software/gawk/manual/html_node/index.html#SEC_Contents
  http://ra2kstar.tistory.com/153
  http://www.thegeekstuff.com/2010/01/awk-tutorial-understand-awk-variables-with-3-practical-examples