[리눅스 마스터][linux, UNIX] [편집][shell] ed (line editer) 사용예

 

[편집][shell] ed (line editer) 사용예

ed (line editer)

ed는 간단한 line edit이다. 솔직히 요즘 linux 속에 들어 있는 pico나 vi와

같이 훌륭한 editer들을 두고서 ed를 사용하는 것은 우스울지도 모르겠지만

shell script를 하다 보면 ed의 위력을 상당히 느낄수 있다.

특히 shell script에서 here document 부분에서 사용되어지는 ed 의 위력은

직접 해 보지 않으면 알수가 없을 것이다.

일단 간단한 명령어들 부터 보겠다. ed의 실행은 ed “file name” 으로 실행을 한다.

  i : 쓰기 mode로 전환한다. vi의 i 와 같은 역할을 한다.

  .(dot) : 쓰기 mode를 마친다.

  d : 한 라인을 삭제한다

  w : 저장을 한다.

  q : ed 를 종료한다.

  + : 한줄아래로 이동을 한다.

  – : 한줄 위로 이동을 한다.

  , : 첫라인 부터 마지막 라인까지를 지정한다. %로 사용하기도 한다.

  ; : 현재 라인 부터 마지막 라인까지의 범위를 지정을 한다.

  $ : 마지막 라인을 지정한다.

  g : global을 의미한다.

  s : 대체를 한다.

그럼 위의 명령을 가지고 간단한 문법들을 설명해 보겠다.

g/show/

이것은 file의 전체 내용중에서 show 라는 단어들을 모두 검색하여

출력을 하는 것을 의미한다. 이것의 용도는 아래의 예제들에서 보겠다.

,s/old/new/g

이것은 첫번째 라인에서 부터 마지막 라인까지 모든 old라는 단어를

new로 대체하라는 의미이다. 여기서

,s/old/new/

와의 차이는 아래의 경우에는 모든라인(,)에서 걸리는 첫번째 old를

show로 대체를 하는 차이를 가진다. 즉 모든 old가 아니라는 것이다.

g의 역할은 이렇게 사용이 된다.

  

이것은 바로 위의 ,s/old/new 와 동일한 의미를 가진다.

또한 범위를 지정하는 방식으로 아래와 같이 사용을 할수가 있다.

(4,$)s/old/new/g

이것은 4번째 line부터 마지막 line까지 모든 old를 new로 대체한다.

대충 이정도의 명령만 알면 here document를 사용하는데 별 무리가 없다.

그럼 이 명령들을 가지고 실제로 변경을 하는 예를 들어 보겠다.

예제 1 )

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

g/#### $ip $location Start/ -> 일단 #### $ip $location Start 줄을 찾는다.

+  -> 그리고 다음 line으로 이동을 한다.

i  -> 이동한 line에서 쓰기 모드로 전환한다.

    -> 실질적인 내용이 들어간다. 이 line은 공백라인을 입력한다.

<VirtualHost $ip>

ServerAdmin $user@$dns

ServerName $dns

DocumentRoot $home/docs

ScriptAlias /cgi-bin/ $home/cgi-bin/

ServerAlias *.$dns  $dns

CustomLog /var/logs/$dns.access_log common

</VirtualHost>

.  -> 쓰기 모드를 마친다.

w  -> 저장을 한다.

q  -> ed를 종료한다.

예제 2 )

,s/var_dns/$dns/g  -> 글 전체의 모든 var_dns를 $dns로 변경한다.

,s/var_mx/$mx/n    -> 글전체의 각 line의 n번째 var_mx를 $mx로 변경

w   -> 저장을 한다.

q   -> 종료를 한다.

g/”WORD”/ 를 사용할때 위와 같이 사용을 하기 위해서는 “WORD”는

유일한 단어여야 한다. 프로그래밍을 할때 변수가 중복이 되지 않는

것처럼 위의 예제는 shell script에서 file에 접근을 할때 사용하는 예일

뿐이다.

ed의 기능은 여기에 나타나 있는 것 보다 훨씬 강력한 명령들이 많이

있다. 단순히 shell script에서 ed를 사용한다면 이정도만 가지고도

충분히 사용을 할수 있지만 더 많은 것을 알고 싶다면 man ed를 하여

살펴 보기를 바란다.

/old/new

 

[출처] http://nblog.syszone.co.kr/archives/233

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
72 [linux master][리눅스 마스터][국가기술자격] [리눅스] socat 명령어(proxy) file 졸리운_곰 2024.02.28 1
71 [linux master][리눅스 마스터][국가기술자격] [리눅스] Linux nc 명령어는 무엇이고 어떻게 쓰는 가? 졸리운_곰 2024.02.28 1
70 [linux master][리눅스 마스터][국가기술자격] [리눅스] AWK 명령어 사용법과 여러가지 실용적인 예제 모음 file 졸리운_곰 2024.02.02 2
69 [linux master][리눅스 마스터][국가기술자격] [vi 명령어] vi 명령어 정리 file 졸리운_곰 2024.02.02 2
68 [linux telnet(ssh) 창에서 MSDOS emulation 에뮬레이션 Install dosemu2 dos emulator in Ubuntu and Ubuntu based distributions file 졸리운_곰 2024.01.05 1
67 [linux master][리눅스 마스터][국가기술자격] [Azure] Linux(ubuntu) 우분투 서버 GUI 환경으로 원격 접속하기 - feat. Ubuntu-desktop file 졸리운_곰 2023.11.22 4
66 [linux master][리눅스 마스터][국가기술자격] [Linux] vim(vi) editor 한글 입력시 깨짐 해결방법 file 졸리운_곰 2023.11.22 3
65 [리눅스][linux] 리눅스 서버 다운 원인 분석과 해결 (책) 방안 졸리운_곰 2023.10.03 8
64 [리눅스][linux] Ubuntu/Linux에서 user password를 짧거나 쉬운 password로 변경하는 방법. file 졸리운_곰 2023.01.08 6
63 [linux master][리눅스 마스터][국가기술자격] [GCP 원데이] 서버가 죽는 이유, Message Queue file 졸리운_곰 2023.01.01 12
62 [linux master][리눅스 마스터][국가기술자격] 리눅스 서버 다운 원인 5가지 졸리운_곰 2023.01.01 3
61 [linux master][리눅스 마스터][국가기술자격] Shell In A Box-원격 Linux 서버에 액세스하기위한 웹 기반 SSH 터미널 file 졸리운_곰 2022.11.17 4
60 [linux dev env] [우분투 서버] noVNC 접속 file 졸리운_곰 2022.11.16 3
59 [Linux WSL2] WSL2에서 Ubuntu GUI 프로그램 실행하기 (VcXsrv) file 졸리운_곰 2022.08.20 29
58 [리눅스, Linux] 우분투에서 NTFS 를 Read/Write로 마운트 (듀얼 부팅 화일 공유) file 졸리운_곰 2022.08.13 12
57 [UBUNTU] 우분투 20.04 USB 스틱에 설치 How to Install Ubuntu on a USB Flash Drive file 졸리운_곰 2022.06.02 49
56 [linux mater] Linux passwd : 인증 토큰 수정 오류 졸리운_곰 2022.03.04 30
55 [리눅스 마스터][linux, UNIX] 전설의 라인 에디트 Man page — ED 사용법 졸리운_곰 2021.11.18 15
» [리눅스 마스터][linux, UNIX] [편집][shell] ed (line editer) 사용예 졸리운_곰 2021.11.17 24
53 [죽기전에 경험해봐야 하는 미니 코어 리눅스 5가지] 5 tiny Linux distros to try before you die file 졸리운_곰 2021.04.25 14
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED