vi 대체 문자열

(1) vi 편집 기 를 통 해 교체 합 니 다.
박문 참고:
http://www.linuxdiyf.com/viewarticle.php?id=99843
http://kingaragorn.javaeye.com/blog/467308
 
vi / vim 에 서 는 문자열 을 바 꾸 기 위해 s 명령 을 사용 할 수 있 습 니 다.예전 에는 편집 소프트웨어 로 만 교 체 했 는데 오늘 은 이 명령 에 여러 가지 쓰기 (vi 가 정말 강하 군요. 아직 배 워 야 할 것 이 많 습 니 다) 가 있 는 것 을 발 견 했 습 니 다. 몇 가 지 를 기록 하면 나중에 조회 하기에 편리 합 니 다.s/well/good/ 현재 줄 의 첫 번 째 줄 바 꾸 기 well 은 good: s / well / good / g 로 현재 줄 의 모든 well 을 good: n, $s / well / good / n 줄 을 바 꾸 고 마지막 줄 의 첫 번 째 well 은 good: n, $s / well / good / g 로 n 줄 을 바 꾸 고 마지막 줄 의 모든 well 은 good n 을 숫자 로 합 니 다. n 이 라면 현재 줄 부터 마지막 줄 까지:% s / well / good /(같은 줄: g / well / s / / good /) 각 줄 의 첫 번 째 well 을 good:% s / well / good / g (같은 줄: g / well / s / / good / g) 로 교체 합 니 다.각 줄 에 있 는 모든 well 을 good 로 바 꾸 면 \ # 구분자 로 사용 할 수 있 습 니 다. 이때 중간 에 나타 나 는 / 구분자 로 사용 하지 않 습 니 다. s \ # well / \ # good / \ # 현재 줄 의 첫 번 째 well / good /:% s \ # / usr / bin \ # / bin \ # g 은 파일 의 모든 경로 / usr / bin 을 / bin 으로 바 꿀 수 있 습 니 다.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =http://www.svn8.com/linux/accidence/20100422/29910.html
링크 ux 에서 파일 내용 을 일괄 교체 합 니 다.  1. 인터넷 에 이미 만들어 진 자료 
형식: sed - i "s / 찾기 필드 / 교체 필드 / g" ` grep 찾기 필드 - rl 경로 `
Svn 중국어 망
링크 ux sed 여러 파일 의 문자열 을 일괄 교체 합 니 다.
  sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
예 를 들 어 모든 파일 의 www. admin 99. net 를 admin 99. net 로 교체 합 니 다. Bbs.Svn8.Com
  sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`
Bbs.Svn8.Com
  exp:sed -i "s/shabi/$/g" `grep shabi -rl ./` Svn8.Com
2, 자신 추가 Svn8.Com
2.1 파일 1. txt 에 있 는 텍스트 'garden' 을 'mirGarden' 으로 바 꿉 니 다.
\ # sed - i "s / garden / mirGarden / g" 1. txt / / sed - i 간단 합 니 다.
2.2 현재 디 렉 터 리 에 있 는 모든 파일 의 "garden" 을 "mirGarden" 으로 바 꿉 니 다. 
\ # sed - i "s / garden / mirGarden / g" ls / / 사실은 ls 에서 여러 개의 파일 이름 을 낼 뿐 입 니 다.
====================================
Linux 에서 여러 파일 의 텍스트 나 문자열 을 동시에 바 꾸 는 방법
비교적 복잡 한 일 을 하 는 데 는 일반적으로 여러 가지 방법 이 존재 한다.
여러 파일 의 텍스트 를 한꺼번에 교체 하 는 것 은 우리 가 자주 겪 는 문제 입 니 다. 다음은 이 문 제 를 해결 하 는 세 가지 방법 입 니 다.
1. vi 방법
vim 사용자 매 뉴 얼 26 참조.
*26.3*       

          "x_cnt"         "x_counter"。
        C        。             。     。
             :

:args *.c

           C            。
                  :

:argdo %s/\/x_counter/ge | update

   ":argdo"            。                 。
          "%s"         。   "\"    "x_cnt"。
"\"              ,    "px_cnt"  "x_cnt2"。

           "g",                    "x_cnt"。
   "e"             "x_cnt"        。
   ":argdo"               "x_cnt"       。
   "|"       。    "update"              。
     "x_cnt"     "x_counter",         。

     ":windo"   ,                   。
   ":bufdo"  ,                。
      ,                       。
   ":buffers"    (  ":ls")        。

2. perl  
           ,
   vi          , c    "x_cnt"    "x_counter"。
        :
find . -name '*.c' -print0 | xargs -0 perl -pi -e 's/x_cnt/x_counter/g'

xargs  find       perl   。
find   -print0 xargs   -0                 ,  man xargs    。

 ()[]/"'!?  등등 이런 특수 문 자 는 문자 앞 에 역 슬 래 쉬 를 붙 여야 합 니 다 \ \ 。
이러한 방법의 장점 은 편집 기 를 시작 하지 않 아 도 비교적 빠르다 는 것 이다. 단점 은 원 하지 않 는 교체 가 쉽게 나타 나 는 것 이다. 예 를 들 어 px cnt 를 px counter 로 교체 하 는 것 이다.
3. sed
여전히 위의 예 로 설명 한다.
find . -name "*.c" -print0 | xargs -0 sed -i 's/x_cnt/x_counter/g'
장단 점 은 perl 방법 과 같다.
이상 의 방법의 차 이 는 도 구 를 사용 하 는 것 이 다 르 기 때문에 틀림없이 다른 도구 가 이 일 을 해 낼 수 있 을 것 이 라 고 믿는다.
예 를 들 어 emacs 도 이런 것 을 할 수 있 을 것 이다. 단지 내 가 emacs 를 사용 하지 않 기 때문에 익숙 하지 않다.
모두 가 자신의 뜻 대로 되 는 방법 을 총 결 하 기 를 바란다.

==================
Linux sed

http://www.itqun.net/content-detail/105074.html

, /modules zhangsan lisi, :

sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`



-i inplace edit,
-r
-l

, 。


(1)sed 'y/1234567890/abCDEFGHIJ/' test_sed

sed 'y/1234567890/abCDEFGHIJ/' filename
abCDEFGHIJ
BCDEFGHIJA
CDEFGHIJAB
DEFGHIJABC
list

:test_sed :

1234567890
2345678901
3456789012
4567890123


(2)

sed 's/01/Ab/g' test_sed
1234567890
23456789Ab
3456789Ab2
456789Ab23
: 0,1 A,b




:d

        *

          $ sed '2d' example----- example 。
        *

          $ sed '2,$d' example----- example 。
        *

          $ sed '$d' example----- example 。
        *

          $ sed '/test/'d example----- example test 。

:s

        *

          $ sed 's/test/mytest/g' example----- test mytest。 g , test mytest。
        *

          $ sed -n 's/^test/mytest/p' example-----(-n) p 。 , test mytest, 。
        *

          $ sed 's/^192.168.0.1/&localhost/' example-----& 。 192.168.0.1 localhost, 192.168.0.1localhost。
        *

          $ sed -n 's/\(love\)able/\1rs/p'

좋은 웹페이지 즐겨찾기