sed awk 편집기

sed awk 편집기
  • sed 편집기
  • 명령 형식:
  • 상용 옵션:
  • 상용 조작:
  • 사용 주소:
  • 줄 삭제:
  • 교체:
  • 삽입:

  • awk
  • 작업 원리:
  • 명령 형식:


  • sed 편집기
    sed 는 스 트림 편집기 입 니 다. 스 트림 편집 기 는 편집기 가 데 이 터 를 처리 하기 전에 미리 제공 한 규칙 을 바탕 으로 데이터 흐름 을 편집 합 니 다.sed 편집 기 는 명령 에 따라 데이터 흐름 의 데 이 터 를 처리 할 수 있 습 니 다. 이 명령 들 은 명령 줄 에서 입력 하거나 명령 텍스트 파일 에 저장 할 수 있 습 니 다.
    sed 의 작업 절 차 는 주로 읽 기, 실행, 표시 세 가지 과정 을 포함한다.
    •  :sed     (  、  、    )                  (      ,pattern space)。
    •  :     ,   sed               ,         ,  sed                。
    •  :            。      ,         。                ,         ,          。
    
                    ,         ,          。
      :        sed             ,                ,           。
    

    명령 형식:
    sed -e '  '   1   2 ...
    sed -n -e '  '   1   2 ...
    sed -f        1   2 ...
    sed -i -e '  '   1   2 ...
    
    sed -e 'n{
      1
      2
    ...
    }'   1   2 ...
    
    

    일반 옵션:
    -f  --file=:                    。
    -h  --help:    。
    -n、--quiet   silent:  sed     ,    p          。
    -i:          。
    

    상용 동작:
    d:  ,      。
    a:  ,              。
    i:  ,              。
    c:  ,           。
    y:    ,             。
    p:  ,       ,       ;      ,         ;        ,   ASCII    。    “-n”      。
    =:    。
    l(  L):               ASCII  (     $、   \t)
    

    인쇄 내용:
    
    sed -n -e '=' testfile1
    
    sed -n -e 'l' testfile1
    
    sed -n -e '=;p' testfile1
    sed -n -e '=' -e 'p' testfile1
    
    sed -n '
    > =
    > p
    > ' testfile1
    

    사용 주소:
    sed    2     :
    1、          
    2、          
    
    sed -n '1p' testfile2
    
    sed -n '$p' testfile2
    
    sed -n '1,3p' testfile2
    
    sed -n '3,$p' testfile2
    
    sed -n '1,+3p' testfile2	#  1     3 , 1-4 
    
    sed '5q' testfile2			#   5      ,q    
    
    sed -n 'p;n' testfile2		#     ;n        
    
    sed -n 'n;p' testfile2		#     
    
    sed -n '2,${n;p}' testfile2
    
    sed -n '/ftp/p' /etc/passwd
    
    sed -n '/^a'/p  /etc/passwd
    
    sed -n '/bash$'/p  /etc/passwd
    
    sed -n '/ftp\|root/p' /etc/passwd
    
    sed -n '2,/145/p' testfile2
    
    sed -n '/145/=' testfile2
    
    sed -nr '/ro{1,}t/p' /etc/passwd	#-r         
    

    줄 삭제:
    sed 'd' testfile2			#  
    
    sed '3d' testfile2
    
    sed '2,4d' testfile2
    
    sed '$d' testfile2
    
    sed '/^$/d' testfile2		#    
    
    sed '/bash$/d' /etc/passwd
    
    sed '/nologin$/!d' /etc/passwd		#“!”      
    
    sed '/2/,/3/d' testfile2		#             ,             
    sed '/1/,/3/d' testfile2
    
    

    대체:
        s/    /    /    
    
    4     :
      :                 
    g:                 
    p:           , -n    
    w   :           
    
    sed -n 's/root/admin/p' /etc/passwd
    
    sed -n 's/root/admin/2p' /etc/passwd
    
    sed -n 's/root/admin/gp' /etc/passwd
    
    sed 's/root//g' /etc/passwd
    
    sed '1,20 s/^/#/' /etc/passwd
    
    sed '/^root/ s/$/#/' /etc/passwd
    
    sed -f script.sed testfile2
    
    sed '1,20w out.txt' /etc/passwd
    sed '1,20 s/^/#/w out.txt' /etc/passwd
    
    sed -n 's/\/bin\/bash/\/bin\/csh/p' /etc/passwd
    sed -n 's!/bin/bash!/bin/csh!p' /etc/passwd		#  “!”        
    
    

    삽입:
    sed '/45/c ABC' testfile2
    
    sed '/45/ y/45/AB/' testfile2
    
    sed '1,3a ABC' testfile2
    
    sed '1i ABC' testfile2
    
    sed '5r /etc/resolv.conf' testfile2
    
    sed '/root/{H;d};$G' /etc/passwd	#   root       ,H        ,G         
    
    sed '1,5H;15,16G' /etc/passwd
    
    
    
    

    awk
    작업 원리:
    텍스트 를 한 줄 씩 읽 습 니 다. 기본적으로 빈 칸 이나 tab 키 를 구분자 로 구분 하고 구 분 된 필드 를 내장 변수 에 저장 하 며 패턴 이나 조건 에 따라 편집 명령 을 수행 합 니 다.sed 명령 은 항상 한 줄 의 처리 에 사용 되 며, awk 는 한 줄 을 여러 개의 '필드' 로 나 누 어 처리 하 는 경향 이 있 습 니 다.awk 정보의 읽 기 도 한 줄 씩 읽 습 니 다. 실행 결 과 는 print 기능 을 통 해 필드 데 이 터 를 인쇄 하여 표시 할 수 있 습 니 다.awk 명령 을 사용 하 는 과정 에서 논리 연산 자 '&' 를 사용 하여 '와', '|' 을 표시 하거나 '!' 를 표시 하여 '비' 를 표시 할 수 있 습 니 다.또한 간단 한 수학 연산 도 할 수 있다. 예 를 들 어 +, -, *,/,%, ^ 는 각각 더하기, 빼 기, 곱 하기, 나 누 기, 나머지 와 곱 하기 를 나타 낸다.
    명령 형식:
    awk    '      {  }'    1    2 …
    awk -f         1    2 …
    
    awk       (    )    :
    FS:    。            ,         。 "-F"    
    NF:           。
    NR:         (  )。
    $0:           。
    $n:       n   ( n )。
    FILENAME:       。
    RS:    。awk         ,   RS              , awk         ,     。    '
    ' : awk '{print}' testfile2 # awk '{print $0}' testfile2 # awk 'NR==1,NR==3{print}' testfile2 # 1~3 awk '(NR>=1)&&(NR<=3){print}' testfile2 # 1~3 awk 'NR==1||NR==3{print}' testfile2 # 1 、 3 awk '(NR%2)==1{print}' testfile2 # awk '(NR%2)==0{print}' testfile2 # awk '/^root/{print}' /etc/passwd # root awk '/nologin$/{print}' /etc/passwd # nologin awk 'BEGIN {x=0};/\/bin\/bash$/{x++};END {print x}' /etc/passwd # /bin/bash , grep -c "/bin/bash$" /etc/passwd BEGIN , , BEGIN ;awk , END ,END{} ,

    필드 로 텍스트 출력:
    
    awk -F ":" '{print $1,$3}' /etc/passwd		#       1、3   
    
    awk -F ":" '$3<5{print $1,$3}' /etc/passwd	#   3       5  1、3     
    
    awk -F ":" '!($3<200){print}' /etc/passwd 	#   3        200  
    awk 'BEGIN {FS=":"};{if($3>=200){print}}' /etc/passwd	#    BEGIN   ,          
    
    awk -F ":" '{max=($3>$4)?$3:$4;{print max}}' /etc/passwd		#($3>$4)?$3:$4     ,   3        4     ,   3       max,   4       max
    
    awk -F ":" '{print NR,$0}' /etc/passwd		#         ,        ,NR  1
    
    awk -F ":" '$7~"/bash"{print $1}' /etc/passwd	#         7      /bash    1   
    
    awk -F ":" '($1~"root")&&(NF==7){print $1,$2}' /etc/passwd	#   1      root  7       1、2   
    
    awk -F ":" '($7!="/bin/bash")&&($7!="/sbin/nologin"){print}' /etc/passwd	#   7      /bin/bash,   /sbin/nologin    
    

    파이프, 더 블 인덱스 를 통 해 셸 명령 을 호출 합 니 다:
    
    awk -F: '/bash$/{print | "wc -l"}' /etc/passwd		#   wc -l        bash      ,    grep -c "bash$" /etc/passwd
    
    free -m | awk '/Mem:/ {print int($3/($3+$4)*100)}'	#           
    
    top -b -n 1 | grep Cpu | awk -F ',' '{print $4}' | awk '{print $1}'		#    CPU   ,(-b -n 1      1      )
    
    date -d "$(awk -F "." '{print $1}' /proc/uptime) second ago" +"%F %H:%M:%S"		#          ,   uptime;second ago          ,+"%F %H:%M:%S"   +"%Y-%m-%d %H:%M:%S"     
    
    
    awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}"%"}'	#  w  ,          
    
    awk 'BEGIN {"hostname" | getline ; {print $0}}'			#   hostname,         
    
     getline       “

    CPU 사용률 cpuus= top -b -n 1 | grep Cpu | awk '{print $2}' cpu_sy= top -b -n 1 | grep Cpu | awk -F ',' '{print $2}' | awk '{print $1}' cpu_sum= ( ( (( ((cpu_us+$cpu_sy)) echo $cpu_sum

    좋은 웹페이지 즐겨찾기