잠시만 기다려 주세요

     '대한민국이 더이상 발전하지 못하는 것은 부패한 언론들의 쓰레기짓 때문이다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (19)  |  여러가지 팁 (1095)  |  추천 및 재미 (163)  |  자료실 (28)  |  
시사, 이슈, 칼럼, 평론, 비평 (798)  |  끄적거림 (142)  |  문예 창작 (719)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    리눅스 데스크탑

리눅스 데스크탑 - 리눅스 sed 사용법
이 름 : 바다아이   |   조회수 : 14388         짧은 주소 : 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 / 9 page
번 호 카테고리 제 목 이름 조회수
248 리눅스 데스크탑 6.14 ... experimental .. !! !!! .. 바다아이 340
247 리눅스 데스크탑 testing, sid, backports surfshark vpn , ...  바다아이 325
246 리눅스 데스크탑 libreoffice hwp ... libreoffice-h2orestart hwp ... 바다아이 420
245 리눅스 데스크탑 .... wine install 바다아이 372
244 리눅스 데스크탑 surfshark vpn .... ..... 바다아이 363
243 리눅스 데스크탑 debian ... 바다아이 466
242 리눅스 데스크탑 unstable testing stable .... ... 바다아이 790
241 리눅스 데스크탑 6.12.9+bpo-amd64... VirtualBox 7.1.6 for Linux.. amd-v .... SVM(Secure Virtual Machine) 바다아이 451
240 리눅스 데스크탑 uuid .... fstab uuid ... blkid 바다아이 477
239 리눅스 데스크탑 ... path ... 바다아이 469
238 리눅스 데스크탑 debian backports .... ?? 바다아이 488
237 리눅스 데스크탑 .... . ... chrome password 바다아이 564
236 리눅스 데스크탑 Wine completely broken - wine: could not load kernel32.dll, status c0000135 바다아이 493
235 리눅스 데스크탑 ... ... ... 바다아이 1454
234 리눅스 데스크탑 debian trixie media-downloader ... ... 바다아이 547
233 리눅스 데스크탑 .... qt5 build-essential 바다아이 494
232 리눅스 데스크탑 archlinux lightdm .... 바다아이 580
231 리눅스 데스크탑 ... archinstall... .. 바다아이 693
230 리눅스 데스크탑 .... pacman -Suy ... 바다아이 893
229 리눅스 데스크탑 archlinux... Libalpm.so.14 error after updating to pacman 7 바다아이 970
228 리눅스 데스크탑 ... 바다아이 1621
227 리눅스 데스크탑 .... 바다아이 1391
226 리눅스 데스크탑 libreoffice hwp , ... 바다아이 1704
225 리눅스 데스크탑 uefi .... . 바다아이 1862
224 리눅스 데스크탑 mkfs ... .. 바다아이 1793
223 리눅스 데스크탑 ... hd 4600.. Ubuntu Intel graphics driver install, 바다아이 4155
222 리눅스 데스크탑 virtualbox ... ntfs.sys ... virtualbox .. 바다아이 4295
221 리눅스 데스크탑 , 10 ... archlinux, window10 dual-boot 바다아이 4094
220 리눅스 데스크탑 , .... ... 바다아이 5132
219 리눅스 데스크탑 Installation from WineHQ's repo, debian wine ... 바다아이 5631
| |









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