• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開(kāi)心的工作
            簡(jiǎn)單、開(kāi)放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            unix的sed 用法介紹 收藏

            Posted on 2011-04-02 15:27 S.l.e!ep.¢% 閱讀(1573) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Shell

            unix的sed 用法介紹 收藏
            轉(zhuǎn)自:http://blog.chinaunix.net/u2/75321/showart_1164426.html

            ?sed是一個(gè)非交互性性文本編輯器,它編輯文件或標(biāo)準(zhǔn)輸入導(dǎo)出的文件拷貝。標(biāo)準(zhǔn)輸入可能是來(lái)自鍵盤、文件重定向、字符串或變量,或者是一個(gè)管道文件。sed可以隨意編輯小或大的文件,有許多sed命令用來(lái)編輯、刪除,并允許做這項(xiàng)工作時(shí)不在現(xiàn)場(chǎng)。sed一次性處理所有改變,因而變得很有效,對(duì)用戶來(lái)說(shuō),最重要的是節(jié)省了時(shí)間。sed必須通過(guò)行號(hào)和正則表達(dá)式指定要改變的文本行

            sed怎樣讀取數(shù)據(jù):
            ??? sed從文件的一個(gè)文本行或從標(biāo)準(zhǔn)輸入的幾種格式中讀取數(shù)據(jù),將之拷貝到一個(gè)編輯緩沖區(qū),然后讀命令行或腳本的第一條命令,并使用這些命令查找模式或定位行號(hào)編輯它,重復(fù)過(guò)程直到命令結(jié)束

            sed命令的調(diào)用:
            ??? 在命令行鍵入命令;將sed命令插入腳本文件,然后調(diào)用sed;將sed命令插入腳本文件,并使sed腳本可執(zhí)行
            ??? sed [option] sed命令 輸入文件??????????? 在命令行使用sed命令,實(shí)際命令要加單引號(hào)
            ??? sed [option] -f sed腳本文件 輸入文件???? 使用sed腳本文件
            ??? sed腳本文件 [option] 輸入文件??????????? 第一行具有sed命令解釋器的sed腳本文件
            ??? option如下:
            ????? n 不打印; sed不寫編輯行到標(biāo)準(zhǔn)輸出,缺省為打印所有行(編輯和未編輯),p命令可以用來(lái)打印編輯行
            ????? c 下一命令是編輯命令,使用多項(xiàng)編輯時(shí)加入此選項(xiàng)
            ????? f 如果正在調(diào)用sed腳本文件,使用此選項(xiàng),此選項(xiàng)通知sed一個(gè)腳本文件支持所用的sed命令,如
            ????????? sed -f myscript.sed input_file? 這里myscript.sed即為支持sed命令的文件
            ??? 使用重定向文件即可保存sed的輸出

            使用sed在文本中定位文本的方式:
            ??? x?????? x為一行號(hào),比如1
            ??? x,y???? 表示行號(hào)范圍從x到y(tǒng),如2,5表示從第2行到第5行
            ??? /pattern/??? 查詢包含模式的行,如/disk/或/[a-z]/
            ??? /pattern/pattern/?? 查詢包含兩個(gè)模式的行,如/disk/disks/
            ??? /pattern/,x? 在給定行號(hào)上查詢包含模式的行,如/disk/,3
            ??? x,/pattern/? 通過(guò)行號(hào)和模式查詢匹配行,如 3,/disk/
            ??? x,y!??? 查詢不包含指定行號(hào)x和y的行

            基本sed編輯命令:
            ??? p????? 打印匹配行????????????????????? c\??? 用新文本替換定位文本
            ??? =????? 顯示文件行號(hào)??????????????????? s???? 使用替換模式替換相應(yīng)模式
            ??? a\???? 在定位行號(hào)后附加新文本信息??????? r???? 從另一個(gè)文本中讀文本
            ??? i\???? 在定位行號(hào)后插入新文本信息??????? w???? 寫文本到一個(gè)文件
            ??? d????? 刪除定位行????????????????????? q???? 第一個(gè)模式匹配完成后退出或立即退出
            ??? l????? 顯示與八進(jìn)制ASCII代碼等價(jià)的控制字符??????? y? 傳送字符
            ??? n????? 從另一個(gè)文本中讀文本下一行,并附加在下一行?? {}???? 在定位行執(zhí)行的命令組
            ??? g????? 將模式2粘貼到/pattern n/

            基本sed編程舉例:
            ??? 使用p(rint)顯示行: sed -n '2p' temp.txt?? 只顯示第2行,使用選項(xiàng)n
            ??? 打印范圍:? sed -n '1,3p' temp.txt???????? 打印第1行到第3行
            ??? 打印模式:? sed -n '/movie/'p temp.txt???? 打印含movie的行
            ??? 使用模式和行號(hào)查詢:? sed -n '3,/movie/'p temp.txt?? 只在第3行查找movie并打印
            ??? 顯示整個(gè)文件:? sed -n '1,$'p temp.txt????? $為最后一行
            ??? 任意字符:? sed -n '/.*ing/'p temp.txt???? 注意是.*ing,而不是*ing
            ??? 打印行號(hào):? sed -e '/music/=' temp.txt
            ??? 附加文本:(創(chuàng)建sed腳本文件)chmod u+x script.sed,運(yùn)行時(shí)./script.sed temp.txt
            ??????? #!/bin/sed -f
            ??????? /name1/ a\???????????? #a\表示此處換行添加文本
            ??????? HERE ADD NEW LINE.???? #添加的文本內(nèi)容
            ??? 插入文本: /name1/ a\ 改成 4 i\ 4表示行號(hào),i插入
            ??? 修改文本: /name1/ a\ 改成 /name1/ c\ 將修改整行,c修改
            ??? 刪除文本: sed '1d' temp.txt? 或者 sed '1,4d' temp.txt
            ??? 替換文本: sed 's/source/OKSTR/' temp.txt???? 將source替換成OKSTR
            ???????????? sed 's/\$//g' temp.txt???????????? 將文本中所有的$符號(hào)全部刪除
            ???????????? sed 's/source/OKSTR/w temp2.txt' temp.txt 將替換后的記錄寫入文件temp2.txt
            ??? 替換修改字符串: sed 's/source/"ADD BEFORE" &/p' temp.txt
            ???????????? 結(jié)果將在source字符串前面加上"ADD BEFORE",這里的&表示找到的source字符并保存
            ??? sed結(jié)果寫入到文件: sed '1,2 w temp2.txt' temp.txt
            ???????????????????? sed '/name/ w temp2.txt' temp.txt
            ??? 從文件中讀文本: sed '/name/r temp2.txt' temp.txt
            ??? 在每列最后加文本: sed 's/[0-9]*/& Pass/g' temp.txt
            ??? 從shell向sed傳值: echo $NAME | sed "s/go/$REP/g"?? 注意需要使用雙引號(hào)

            快速一行命令:
            ??? 's/\.$//g'???????? 刪除以句點(diǎn)結(jié)尾行
            ??? '-e /abcd/d'?????? 刪除包含abcd的行
            ??? 's/[][][]*/[]/g'?? 刪除一個(gè)以上空格,用一個(gè)空格代替
            ??? 's/^[][]*//g'????? 刪除行首空格
            ??? 's/\.[][]*/[]/g'?? 刪除句號(hào)后跟兩個(gè)或更多的空格,用一個(gè)空格代替
            ??? '/^$/d'??????????? 刪除空行
            ??? 's/^.//g'????????? 刪除第一個(gè)字符,區(qū)別? 's/\.//g'刪除所有的句點(diǎn)
            ??? 's/COL/(...\)//g'? 刪除緊跟COL的后三個(gè)字母
            ??? 's/^\///g'???????? 刪除路徑中第一個(gè)\


            本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/youxiaxk/archive/2010/03/05/5348945.aspx

            国产婷婷成人久久Av免费高清 | 欧美日韩精品久久久久 | 99久久人人爽亚洲精品美女| 久久精品99久久香蕉国产色戒| 亚洲午夜无码AV毛片久久| 亚洲国产天堂久久久久久 | 久久精品国产亚洲AV蜜臀色欲| 99精品久久久久久久婷婷| 91精品国产综合久久四虎久久无码一级 | 久久久国产视频| 一本色道久久88加勒比—综合| 精品人妻伦九区久久AAA片69| 99久久香蕉国产线看观香| 国产精品久久久久久久久鸭| 久久亚洲欧洲国产综合| av无码久久久久久不卡网站| 亚洲国产成人久久综合碰| 久久er99热精品一区二区| 亚洲国产精品成人久久蜜臀 | 一本久久a久久精品vr综合| 国产成人AV综合久久| 久久国产精品一国产精品金尊| 久久国产精品国语对白| 国产精品久久久久9999高清| 免费久久人人爽人人爽av| 国产福利电影一区二区三区久久久久成人精品综合 | 中文字幕乱码久久午夜| 国内精品久久久久久不卡影院| 亚洲精品美女久久777777| 久久强奷乱码老熟女网站| 日本精品久久久久中文字幕| 久久人人爽人人爽人人片AV不| 日韩电影久久久被窝网| 久久国产高清一区二区三区| 嫩草影院久久国产精品| 国产精品一区二区久久国产| 精品久久久久久无码中文字幕一区| 久久亚洲精品成人无码网站| 亚洲伊人久久成综合人影院| 久久青青草视频| 99久久精品国产一区二区 |