잠시만 기다려 주세요

     '바다아이 사이트는 윤석열 정부 탄핵을 지지합니다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (16)  |  여러가지 팁 (1056)  |  추천 및 재미 (151)  |  자료실 (22)  |  
시사, 이슈, 칼럼, 평론, 비평 (600)  |  끄적거림 (129)  |  문예 창작 (705)  |  바람 따라 (69)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    리눅스 데스크탑

리눅스 데스크탑 - 리눅스 sed 사용법
이 름 : 바다아이   |   조회수 : 12282         짧은 주소 : https://www.bada-ie.com/su/?421591824227

# linux sed사용법

sed로 텍스트 편집하기

sed (stream editor) : 그래픽 인터페이스가 없는 명령행 유틸리티임 그래서 많은 편집 작업을 일괄적! 으로 처리하기에 아주! 적합한 도구이다.

sed는 파일을 한행씩 처리하고 현재 작업중인 라인을 패턴스페이스란 곳에 저장함

 

# 사용 문법

sed 'command' [filename]

sed s/regular_expression/replacement_String/flags input_file

 

ex) sed s/file_nmae/file_name/ > filename.txt

 

## sed 명령어들

d : 행 삭제

h : 패턴스페이스 내용을 홀드스페이스로 복사

H : 패턴스페이스 내용을 홀드스파이스로 추가

g : 홀드스페이스 내용을 패턴스페이스에 복사

G : 홀드스페이스 내용을 패턴스페이스에 추가

p : 행을 출력함

n : 다음입력

q : sed 종료

r : 파일로 부터 행을 읽어 온다

! : 선택된 행을 제외한 나머지 전체 행에 명령어를 적용

s : 문자열을 치환함

 

** s - 검색 & 치환

s는 검색과 치환을 수행한다는 뜻이다. 슬래시(/)로 검색하고 치환할 정규 표현식을 지정한다.

ex) sed s/filename/filename.txt/ filename.txt

filename.txt에 있는 filename이란 스트링을 filename.txt로 치환한다.  

 

** \ -역슬래시

역슬래시(\)는 이스케이프 문자라고 부르는데 \다음에 오는 문자는 정규표현식으로 해석하지 않는다.  결국 스트링에 특수기호가 포함되어 있을때 \를 사용한다.

ex) sed s/\$FL/\$FILELIST/ filename.txt

 

** 한행에 여러번 나오는 문자열 교체하기 (flag : g)

sed는 행단위 편집기로, 행을 한번에 하나씩 메모리로 읽은 후 한단위로 처리한다.

sed를 실행할 때는 이 사실을 명심해야한다. 모든 명령행 옵션도 이러한 설계 철학에 기반을 두기 때문이다.

기본적으로 행마다 sed 명령을 새롭게 적용한다고 이해하면 되겠다

그래서 한줄에 같은 단어가 2개 이상 있다면 하나만 바뀌고 끝난다.

 

filename : prj.txt

project : aaa.prj, project : aaa

project : ok

위에 내용에서 project를 project_name로 바꾸고 싶다면

 

sed s/project/project_name/ prj.txt

그러나!! 두번째 둘의 콤마(,)뒤의 project는 바뀌지 않은것을 볼수 있을 것이다.

그래서 다음과 같이 g flag(global)를 이용한다.

sed s/project/project_name/g prj.txt

 

** 선행검색 

s앞에 /string/을 사용하면 선행검색이 가능하다

ex) sed /okplayers/s/players :/artist :/ playerlists.txt

 okplayers가 있는 줄을 찾아 players :를 artist :로 바꾸어라

 

** 콜론(:)으로 끝나는 문자열 모두 변경하기

정규표현식을 이용한 sed 활용법을 정리해 보자

filename:$FLN

system "echo project:$project"

system "echo version:$version"

위의 문자에서 :으로 끝나는 문자열을 모두 변경하여 보자!!!

 

sed s/[a-z]*:/value:/g system.txt

 

변경된 내용은 다음과 같다

value:$FLN

system "echo value:$project"

system "echo value:$version"

 

그러나!! 이것보다 더 좋은 것이 있었으니,

일정 형식의 string에 앞에 어떤 단어를 추가 하고 싶을 때

기존의 filename:, project:, version: 앞에 new_를 추가 하고 싶으면 앰퍼센트를(&) 사용하면된다.

 

** 앰퍼센트(&)

위의 내용에서 각각의 콜론 앞 스트링에 new_를 붙이고 싶다면!!

filename:$FLN

system "echo project:$project"

system "echo version:$version"

 

sed s/[a-z]*:/new_\&/g system.txt

new_filename:$FLN

system "echo new_project:$project"

system "echo new_version:$version" 이렇게 됨 ㅎㅎ

 

와우 다음은 awk를 정리해 보아요 ㅎㅎㅎ

 

<출처>

http://blog.naver.com/PostView.nhn?blogId=heewon0117&logNo=120088332695&viewDate=&currentPage=1&listtype=0

<출처2>
http://blog.naver.com/PostView.nhn?blogId=juner84&logNo=100129369041&categoryNo=20&parentCategoryNo=0&viewDate=&currentPage=5&postListTopCurrentPage=1&userTopListOpen=true&userTopListCount=10&userTopListManageOpen=false&userTopListCurrentPage=5
 

| |





      1 page / 8 page
번 호 카테고리 제 목 이름 조회수
228 리눅스 데스크탑 ... 바다아이 467
227 리눅스 데스크탑 .... 바다아이 477
226 리눅스 데스크탑 libreoffice hwp , ... 바다아이 497
225 리눅스 데스크탑 uefi .... . 바다아이 980
224 리눅스 데스크탑 mkfs ... .. 바다아이 947
223 리눅스 데스크탑 ... hd 4600.. Ubuntu Intel graphics driver install, 바다아이 2622
222 리눅스 데스크탑 virtualbox ... ntfs.sys ... virtualbox .. 바다아이 2791
221 리눅스 데스크탑 , 10 ... archlinux, window10 dual-boot 바다아이 2779
220 리눅스 데스크탑 , .... ... 바다아이 3651
219 리눅스 데스크탑 Installation from WineHQ's repo, debian wine ... 바다아이 4140
218 리눅스 데스크탑 xfce4 debian .... uim fcitx 바다아이 4545
217 리눅스 데스크탑 archlinux , .... 바다아이 3712
216 리눅스 데스크탑 firefox .... ... 바다아이 3674
215 리눅스 데스크탑 zip , unzip 바다아이 3326
214 리눅스 데스크탑 automouse autoclick xdotool 바다아이 4243
213 리눅스 데스크탑 xfce4 pacman .. 바다아이 3726
212 리눅스 데스크탑 debian intel-microcode [Firmware Bug]: TSC_DEADLINE disabled due to Errata - what should I do about this? 바다아이 4209
211 리눅스 데스크탑 debian xfce usb . pc 바다아이 3992
210 리눅스 데스크탑 .xprofile ... .xsessionrc ... 바다아이 3764
209 리눅스 데스크탑 debian 12 nvidia 바다아이 5373
208 리눅스 데스크탑 ..... 바다아이 3594
207 리눅스 데스크탑 xfce fcitx ... 바다아이 3695
206 리눅스 데스크탑 20.04 5 .... 바다아이 4155
205 리눅스 데스크탑 , , , , alias 바다아이 5214
204 리눅스 데스크탑 manjaro archlinux pacman PGP ..... 바다아이 4416
203 리눅스 데스크탑 yaourt yay aur.... 바다아이 4337
202 리눅스 데스크탑 mirror ... . 바다아이 6231
201 리눅스 데스크탑 20.04 leafpad , euc-kr utf-8 . 바다아이 6169
200 리눅스 데스크탑 , ls . 바다아이 6301
199 리눅스 데스크탑 (Ubuntu) Snap Package , snap 바다아이 6621
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.05738
to webmaster... gogo sea. gogo sea.