Skip to content

minority opinions

Menu
  • Contact
  • Home
  • Tags
Menu

리눅스 sed 명령어 사용법 / sed example

Posted on November 17, 2021July 8, 2023 by Daniel J.

SED 명령어는  Stream Editor의 약자로 

파일 내용에 대하여 검색, 찾기, 치환, 삽입 또는 삭제 등의 기능을 가지고 있는 리눅스의 고급명령어

& 스트림 편집기.

SED Example / Sample Command

1. 특정 패턴 문자열 출력 (awk 조합) : html 파일 에서 특정 볼륨의 사용량만 출력


sample.html

                <td><p style=”text-align:left”><abbr title=”C:\ClusterStorage\Volume1″>Volume1 <span style=”font-size:10px;color:orange”>*</span></abbr><br><span style=”font-size:10px;color:#BDBDBD;text-align:left”><abbr title=”PhysicalSize: 4.88 TB | Allocated: 4.88 TB | Unallocated: ~0 Byte”>Volume01 <span style=”font-size:10px;color:orange”>*</span></abbr></span></p></td>
                <td bgcolor=”#ACFA58″><p style=”color:#298A08″>Online</p></td>
                <td><p>CSV</p></td>
                <td><p>DZ-VI-IP-HV138</p></td>
                <td><p>FC</p></td>
                <td><p>GPT</p></td>
                <td><p>CSVFS</p></td>
                <td><p>0</p></td>
                <td><p style=”line-height:1.2″>4.27<br><span style=”font-size:10px”> TB</span></p></td>
                <td bgcolor=””><p style=”line-height:1.2″>632.6<br><span style=”font-size:10px”> GB</span></p></td>

Input

sed -n  '/Volume1 /,/~/p' sample.html | sed -n '10p'

sed -n  '/Volume1 /,/~/p' sample.html | sed -n '10p' | awk -F ">" '{print $3}' | awk -F "<" '{print $1}'

Output

632.6

2. 원하는 문자열(패턴) 추가 : conf 파일 자동으로 문자열 추가 (-i 옵션은 변경후 저장)


logstash.conf

                
             
  if [idName] =~ “4779” or [idName] =~ “4131” or [idName] =~ “3620” or [idName] =~ “5401” or [idName] =~ “5392” or [idName] =~ “2845” or [idName] =~ “3815” or [idName] =~ “4781” or [idName] =~ “4770”
    {
      drop {}
    }

Input

#!/bin/bash -x 

Before0=`grep policy logstash.conf | awk -F "or" '{print $NF}' | awk -F " " '{print $1, $2, $3}'`
Before='\'${Before0}''

read -p "PolicyID? : " PolicyID

APPEND="$Before or [policyid] =~ $PolicyID"

sed -i "s/${Before}/$APPEND/g" /usr/local/src/logstash.conf

Output (bash shell debug mode)

++ grep policy logstash.conf
++ awk -F or '{print $NF}'
++ awk -F ' ' '{print $1, $2, $3}'
+ Before0='[policyName] =~ "4770"'
+ Before='\[policyName] =~ "4770"'
+ read -p 'PolicyID? : ' PolicyID
PolicyID? : 88888888
+ APPEND='\[policyName] =~ "4770" or [policyid] =~ 88888888'
+ sed -i 's/\[policyName] =~ "4770"/\[policyName] =~ "4770" or [policyid] =~ 88888888/g' /usr/local/src/logstash.conf
sed script 실행 결과

3. Line 위, 아래 문자열 추가 : txt 파일 특정 라인 위, 아래 text 추가 하기


file.txt

                
aaaaaa aaaaaaa
bbbbbb bbbbbbb
dddddd ddddddd
eeeeee eeeeeee
gggggg ggggggg             

Input

# 특정 라인(줄) 위에 문자열 추가

sed -i'' -r -e "/dddddd ddddddd/i\cccccc ccccccc" file.txt

# 특정 라인(줄) 아래 문자열 추가

sed -i'' -r -e "/eeeeee eeeeeee/a\ffffff fffffff" file.txt

Output 

sed 명령어 실행 결과

4. sed 정규표현(regex) 문법 조합 예시 : Regex search & replace


test.txt

                
TEST Files

Telegraf Configuration

Telegraf is entirely plugin driven. All metrics are gathered from the
declared Inputs, and sent to the Declared outputs.

interval = “10s”
imetric_batch_size = 1000
servers = [“http://user:pass@localhost:9200”]            

Input

## 대상 파일에서 영어 알파벳 대문자 첫자만 괄호 묶기

cat sample.txt | sed 's/\(\b[A-Z]\)/\(\1\)/g

## 대상 파일에서 모든 숫자를 "#" 으로 치환(바꿈)

cat sample.txt | sed -r 's/[0-9]/#/g'

## 대상 파일의 모든 숫자 끝에 "XXXX"를 추가 

cat sample.txt | sed -r 's/([0-9]+)/\1XXXX/g'

Output 

5. 파일내 하나 이상의 개행(줄바꿈) 바꾸기   : \n 제거 / 공백으로 교체


in.txt

                
aaaaaaa
bbbbbbb
ccccccc
ddddddd



eeeeeee
fffffff

ggggggg            

Input

## 파일내 하나 이상의 개행(줄바꿈)을 공백으로 교체

(sed -r ':a;N;$!ba;s/\n+/ /g' | sed -r 's/\s+/ /g') < in.txt > out.txt

Output 

6. Overview of Regular Expression Syntax / sed 정규 표현식


https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html

sed 명령어는 다양하고 수많은 옵션과 활용 예제들이 있습니다. 전문서적 책 한권으로 나올정도의 방대한 양의 강력한 리눅스 명령어 입니다.

Related

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Category

  • Article (49)
  • Uncategorized (214)
  • 게임 소식 (9)
  • 기술 정보 & 테크 소식 (188)
  • 꿀팁정리 & 자기계발 (250)
  • 블로그 (8)
  • 사건 사고 (3)
  • 역사 (11)
  • 이슈 뉴스 정리 (127)
  • 정치 인물 사회 (22)
  • 주식 경제 (102)

Popular Posts

  • 장사의신 애월 파스타집 고양이 기름때 위생 논란
  • 서울 서이초등학교 학부모 갑질 교사 자살 사건
  • 한문철 전직 보디빌더 인천 주차장 폭행사건 가해자는 누구?
  • 코딩하는 공익 반병현 셀프 바이럴 논란
  • 황의조 휴대폰 해킹, 성관계 사진 인스타 유포

©2023 minority opinions | Design: Newspaperly WordPress Theme