<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 175  文章 - 202  trackbacks - 0
    <2011年6月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    第一個Blog,記錄哈哈的生活

    常用鏈接

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    Java links

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    轉自:http://dolphin-ygj.iteye.com/blog/366314
    vi替換命令用法詳解
    : ranges /pat1/pat2/g
    其中
    : 這是Vi的命令執行界面。
    range 是命令執行范圍的指定: 百分號(%)表示所有行
    點(.)表示當前行
    美元($)表示最末行

    例如:
    10,20表示第10到20行,
    .,$表示當前行到最后一行,.
    +2,$-5表示當前行后兩行直到全文的倒數第五行

    s 表示其后是一個替換命令。
    pat1 這是要查找的一個正則表達式
    pat2 這是希望把匹配串變成的模式的正則表達式

    g 可選標志,帶這個標志表示替換將針對行中每個匹配的串進行,否則則只替換行中第一個匹配串。


    :/string #向下查找
    :?stirng   # 向上查找


    1

    vi編輯命令責任編輯:黑色聯想   更新日期:2006-9-7重復執行命令
    數字N+命令     重復執行命令N次,如刪除15行,就在命令狀態下輸入15dd
    .              重復執行上一條命令
    vi命令使用的一些選項及含義
    -c sub-command 在對指定的文件編輯前,先執行指定的命令 sub-command .
    -r filename 恢復指定的文件filename .
    -R 將指定的文件以只讀的方式放入編輯器中,這樣不會保存對文件的任何修 改。
    -y number 將編輯窗口的大小設為number行。
    光標移動
    命令模式下,在同一行上移動的子命令:
    h   將光標左移一格
    l   將光標右移一格
    j   將光標下移一格
    k   將光標上移一格
    w   將光標移到下一個小字的前面
    W  將光標移到下一個大字的前面
    b   將光標移到前一個小字的前面
    B   將光標移到前一個大字的前面
    e   將光標移到下一個小字的后面
    E   將光標移到前一個大字的后面
    fc  把光標移到同一行的下一個c字符處
    Fc  把光標移到同一行的前一個c字符處
    tc  把光標移到同一行的下一個字符c的前一格
    Tc  把光標移到同一行的前一個字符c的后一格
    number|把光標移到遞number列上
    命令模式下在行間移動的子命令:     
    +或Enter   把光標移至下一行第一個非空白字符
    -   把光標移至上一行第一個非空白字符 
    0   把光標移到當前行的第一個字符處
    $   把光標移到當前行的最后一個字符處
    H   把光標移到屏幕最頂端一行
    L   把光標移到屏幕最底端一行
    M  把光標移到屏幕中間
    :number 光標移動到第number行
    :$  光標移動到最后以行
    屏幕翻滾類命令
    Ctrl+u   向文件首翻半屏
    Ctrl+d   向文件尾翻半屏
    Ctrl+f   向文件尾翻一屏
    Ctrl+b  向文件首翻一屏
    nz     將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部
    插入文本
    I   在光標前
    I   在當前行首
    a   光標后
    A   在當前行尾
    o   在當前行之下新開一行
    O  在當前行之上新開一行
    r   替換當前字符
    R   替換當前字符及其后的字符,直至按ESC鍵
    s   從當前光標位置處開始,以輸入的文本替代指定數目的字符
    S   刪除指定數目的行,并以所輸入文本代替之
    ncw或nCW  修改n個單詞
    nCC修改指定數目的行
    刪除
    x       刪除光標所指的一個字母
    X      刪除光標左邊的一個字母
    dd     刪除光標所在的一行文字,同時本行文字會放到緩存中
    d0     刪至行首
    d$     刪至行尾
    D      刪除本行光標右邊的所有文字,包括光標位置的字母
    d$     刪除本行光標右邊的所有文字,包括光標位置的字母
    dw     刪除光標右邊的一個單詞
    ndw    刪除n個單詞
    d1G       刪除光標所在行以上的所有行
    dG     刪除光標所在行及光標以下所有行
    復制
    yy          復制本行文字到緩存中
    number yy   復制number行到緩存中
    粘貼
    p      把緩存中的行粘貼到光標所在的下一行,
    P      把緩存中的行粘貼到光標所在的上一行
    替換
    :s/pattern1/pattern2/g    把光標當前行的pattern1替換為pattern2
    :%s/pattern1/pattern2/g   把所有行的pattern1替換為pattern2
    :g/parttern1/s//parttern2  把所有行的pattern1替換為pattern2
    :num1,num2 s/pattern1/pattern2/g     把num1到num2的partten1替換為partten2
    被替換的文字用^表示行首,$表示行尾,如:%s/^/111/g就表示在每一行的行首插入111
    文件
    :r filename   把文件filename的內容粘貼在光標以下行
    :w         保存當前編輯的文件名
    :w filename  當filename不存在時,把修改后的文件存為文件filename ,當文件filename
    存在時,報錯。
    !w filename  如果文件filename存在時,把修改后的文件保存為文件filename
    :q         退出vi ,若文件被修改,系統不會讓用戶使用q命令退出
    q!         不保存退出
    x          保存退出
    wq         保存退出
    在多個文件之間切換
    :n開始編輯vi激活的文件列表中的下一個文件
    :n filenames 指定將被編輯的新的文件列表
    在當前文件和另外一個文件間切換:
    :e filename  使用filename激活vi(在vi中裝入另一個文件filename)
    e!         重新裝入當前文件,若當前文件有改動,則丟棄以前的改動
    :e+filename  使用filename激活vi ,并從文件尾部開始編輯
    :e+number filename  使用filename激活vi ,并在第number行開始編輯
    :e#        開始編輯另外一個文件
    查找
    /pattern     向后尋找指定的pattern ,若遇到文件尾,則從頭再開始。
    ?pattern   向前尋找指定的pattern ,若遇到文件頭,則從尾再開始。
    n          在上次指定的方向上,再次執行上次定義的查找。
    N         在上次指定的方向的相反方向上,再次執行上次定義的查找。
    /pattern/+number    將光標停在包含pattern的行后面第number行上。
    /pattern/-number     將光標停在包含pattern的行前面第number行上。
    %                移到匹配的"()"或"{}"上。
    選項設置
    all         列出所有選項設置情況
    term        設置終端類型
    ignorance   在搜索中忽略大小寫
    list         顯示制表位(Ctrl+I)和行尾標志($)
    number    顯示行號
    report       顯示由面向行的命令修改過的數目
    terse       顯示簡短的警告信息
    warn        在轉到別的文件時若沒保存當前文件則顯示NO write信息
    nomagic     允許在搜索模式中,使用前面不帶“\”的特殊字符
    nowrapscan 禁止vi在搜索到達文件兩端時,又從另一端開始
    mesg       允許vi顯示其他用戶用write寫到自己終端上的信息
    、在vi中使用的查找替換方法
    利用 :s 命令可以實現字符串的替換。具體的用法包括:
    :s/str1/str2/ 用字符串 str2 替換行中首次出現的字符串str1
    :s/str1/str2/g 用字符串 str2 替換行中所有出現的字符串str1
    :.,$ s/str1/str2/g 用字符串 str2 替換正文當前行到末尾所有出現的字符串str1
    :1,$ s/str1/str2/g 用字符串 str2 替換正文中所有出現的字符串str1
    :g/str1/s//str2/g 功能同上從上述替換命令可以看到:g 放在命令末尾,表示對搜索字符串的每次出現進行替換;不加 g,表示只對搜索字符串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜索字符串的行進行替換操作。

    2、在shell中使用find結合grep進行文件的替換
    # find ./ -exec grep str1 ‘{}’ \; -exec sed -i.bak s/str1/str2/g ‘{}’ \;
    上面命令可以在當前目錄下(包括子目錄)查找包含str1的文件,自動替換成str2,并且生成源文件的bak文件。

     
    posted on 2011-06-17 15:39 哈哈的日子 閱讀(232) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成人啪精品视频免费网站| 黄色网址在线免费观看| 亚洲精品美女视频| 亚洲国产一区二区a毛片| 亚洲乱码中文字幕久久孕妇黑人| 亚洲AV综合永久无码精品天堂| 亚洲中文字幕久在线| 亚洲国产精品线观看不卡| 国产中文字幕免费| 热久久精品免费视频| 国产禁女女网站免费看| 国产免费人人看大香伊| 午夜亚洲国产成人不卡在线| 免费在线观看a级毛片| 久草视频免费在线观看| 四虎永久在线观看免费网站网址| 999国内精品永久免费观看| AV免费网址在线观看| 日韩免费福利视频| 亚洲 国产 图片| 相泽亚洲一区中文字幕| 精品国产综合成人亚洲区| 久久精品7亚洲午夜a| 亚洲阿v天堂在线2017免费| 亚洲精品成人在线| 国产精品国产亚洲精品看不卡| 久久亚洲春色中文字幕久久久| 亚洲伊人久久大香线蕉在观| 亚洲成A人片在线观看WWW| 亚洲自偷自拍另类12p| 久久亚洲精品专区蓝色区| 男人的天堂av亚洲一区2区| 一级毛片**免费看试看20分钟| 久久99免费视频| 美女裸身网站免费看免费网站| 免费高清av一区二区三区| 中文字幕亚洲专区| 亚洲视频在线免费看| 亚洲欧洲av综合色无码| 国产免费黄色无码视频| 在线观看www日本免费网站|