亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Ubuntu下使用sed命令處理文本

2019-11-06 09:55:11
字體:
來源:轉載
供稿:網友

先舉個簡單的例子:

有個文件叫example.txt

內容為 aaa 

使用sed命令刪除第一行

sed '$d' example.txt > example.txt

那么第一行就會被刪除了    

 現在需要對txt文件的每行行首加上絕對路徑,一開始編寫的shell腳本,提示更改成功了,但不知道還要將輸出進行重定向,于是換了vim打開文件進行修改。

1、首先,因為絕對路徑里包含/這樣的字符,可以使用/進行轉義,假定要修改的文件名為test.txt,要在行首加入字符/finetune_caviar/,shell腳本編寫如下:

sed 's/^///finetune_caviar//&/g' test.txt

介紹下該命令:

(1)sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作,命令格式為:sed [-nefri] ‘command’ 文本名稱

(2)^表示行首

(3)//表示使用/對字符/進行轉義

(4)g代表將每行出現的字符全部替換,如果想在特定字符處添加,g就有用了,否則只會替換每行第一個,而不繼續往后找了;

2、但是我在執行過上述命令后,只是進行了屏幕輸出,于是換成vim進行修改:

       使用vim test.txt打開文件后,使用冒號(:)輸入命令:%s/^///finetune_caviar//&/g

       注:因為在文本編輯模式里不需要使用sed命令,也不需要指明文件名稱,自然表示命令的' '也是不需要的了。如果不加上%,則只對第一行進行替換。

3、將行首內容/finetune_caviar/替換為finetune:

      shell腳本:sed “s///finetune_caviar/////finetune///” test.txt > test_new.txt (此時不止進行了屏幕輸出,同時保存了更新過的文件為test_new.txt)

      vim編輯:%s///finetune_caviar/////finetune/// ,或者g///finetune_caviar///s////finetune///

4、附sed的常用命令:

常用選項:        -n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加上 -n 參數后,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。        -e∶直接在指令列模式上進行 sed 的動作編輯;        -f∶直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作;        -r∶sed 的動作支援的是延伸型正規表示法的語法。(預設是基礎正規表示法語法)        -i∶直接修改讀取的檔案內容,而不是由螢幕輸出。       

常用命令:        a   ∶新增, a 的后面可以接字串,而這些字串會在新的一行出現(目前的下一行)~        c   ∶取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!        d   ∶刪除,因為是刪除啊,所以 d 后面通常不接任何咚咚;         i   ∶插入, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行);         p  ∶列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作~         s  ∶取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!

舉例:(假設我們有一文件名為ab)     (1)刪除某行     [root@localhost ruby]# sed '1d' ab              #刪除第一行      [root@localhost ruby] # sed '$d' ab              #刪除最后一行     [root@localhost ruby] # sed '1,2d' ab           #刪除第一行到第二行     [root@localhost ruby] # sed '2,$d' ab           #刪除第二行到最后一行

?。?)顯示某行.    [root@localhost ruby]# sed -n '1p' ab           #顯示第一行      [root@localhost ruby] # sed -n '$p' ab           #顯示最后一行     [root@localhost ruby] # sed -n '1,2p' ab        #顯示第一行到第二行     [root@localhost ruby] # sed -n '2,$p' ab        #顯示第二行到最后一行

?。?)使用模式進行查詢     [root@localhost ruby] # sed -n '/ruby/p' ab    #查詢包括關鍵字ruby所在所有行     [root@localhost ruby] # sed -n '//$/p' ab        #查詢包括關鍵字$所在所有行,使用反斜線/屏蔽特殊含義

?。?)增加一行或多行字符串     [root@localhost ruby]# cat ab     Hello!     ruby is me,welcome to my blog.     end     [root@localhost ruby] # sed '1a drink tea' ab  #第一行后增加字符串"drink tea"     Hello!     drink tea     ruby is me,welcome to my blog.      end     [root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"     Hello!     drink tea     ruby is me,welcome to my blog.     drink tea     end     drink tea     [root@localhost ruby] # sed '1a drink tea/nor coffee' ab  #第一行后增加多行,使用換行符/n     Hello!     drink tea     or coffee     ruby is me,welcome to my blog.     end

?。?)代替一行或多行     [root@localhost ruby] # sed '1c Hi' ab               #第一行代替為Hi     Hi     ruby is me,welcome to my blog.     end     [root@localhost ruby] # sed '1,2c Hi' ab            #第一行到第二行代替為Hi     Hi     end

     sed 's/^/添加的頭部&/g'   //在所有行首添加     sed 's/$/&添加的尾部/g'    //在所有行末添加     sed '2s/原字符串/替換字符串/g'    //替換第2行     sed '$s/原字符串/替換字符串/g'    //替換最后一行     sed '2,5s/原字符串/替換字符串/g'    //替換2到5行     sed '2,$s/原字符串/替換字符串/g'    //替換2到最后一行

     sed '.,$s/原字符串/替換字符串/g'    //替換當前行到最后一行

 (6)替換一行中的某部分  格式:sed 's/要替換的字符串/新的字符串/g'   (要替換的字符串可以用正則表達式,末尾加g替換每一個匹配的關鍵字,否則只替換每行的第一個)     sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替換ruby為bird  sed -n '/ruby/p' ab | sed 's/ruby//g'        #刪除ruby

     替換樣式可以多個在同一條命令中執行,用分號”;”分隔:

     sed 's/^/添加的頭部&/g;s/$/&添加的尾部/g'    //同時執行兩個替換規則

     (7)插入    sed -i '$a bye' ab        #在文件ab中最后一行直接輸入"bye"    sed -i '1i'$first ab#在文件ab中第一行插入變量$first作為一行,這里注意1和i之間可以有空格,但是$first前不能有空格

     (8)刪除匹配行

      sed -i '/匹配字符串/d'  filename  (注:若匹配字符串是變量,則需要“”,而不是‘’。記得好像是)

     (9) 替換匹配行中的某個字符串:

      sed -i '/匹配字符串/s/替換源字符串/替換目標字符串/g' filename

     (10)sed處理過的輸出是直接輸出到屏幕上的,要保存可以將輸出重定向,或者使用參數”i”直接在文件中替換:

      sed -i 's/原字符串/替換字符串/g' filename    //替換文件中的所有匹配項

      注:為了避免/的歧義??梢允褂??、#、+等其他字符來代替/作為命令的分隔符。

5、附vim常用命令

光標控制命令 

  命令                  移動                   向上移一行                    向下移一行                  向左移一個字符                    向右移一個字符   gg              移到文件的首行                   移到文件的末行                   移到屏幕的第一行                   移到下一個字的開頭                  移到下一個字的開頭,忽略標點符號                   移到下一個字的結尾                  移到下一個字的結尾,忽略標點符號                  移到當前行首                  移到當前行尾                    移到上一段開頭                    移到上一段結尾   Enter          移到下一行行首在 vim 中添加文本   命令                  插入                    在光標前插入文本                    在當前行首插入文本                   在光標后插入文本                  在當前行末插入文本                   在當前行的下邊插入新行                  在當前行的上邊插入新行                    刪除光標所在處字符,并進入插入模式                   刪除光標所在的行,并進入插入模式   :r filename       讀入指定文件內容,并插在當前行后   :nrfile                讀入文件 file 內容,并插在第 n 行后   Esc                  回到命令模式在 vim 中刪除文本    命令                  刪除                     刪除光標處的字符    db               刪除光標前面的字    dw               刪至下一個字的開頭    dd               刪除整行    :n,md          從第 m 行開始往前刪除 n 行    d$                從光標處刪除到行尾    d^                從光標處刪除到行首在 vim 中查找與替換    命令                 查找與替換  /target             在文件中向前查找 target  ?target            在文件中向后查找 target                      查找下一個                      查找上一個  :setic               查找時忽略大小寫  :setnoic          查找時對大小寫敏感%s/text1/text2/g       在整個文件中查找text1并且替換為text2在 vim 中復制文本    命令                     復制    yy                復制當前行    nyy              從當前開始復制n行                      粘貼至光標前                      粘貼至光標后                      撤消上一次修改                      撤消所有修改保存與退出vim    命令                     保存或退出    :w                  保存文件但不退出    :wfile             將修改保存在 file 中但不退出  :wq 或 ZZ或:x        保存文件并退出    :q!                 不保存文件,強制退出    :e!                  放棄所有修改,從上次保存文件開始再編輯其他選項    選項                     作用    :setall            查看所有選項    :setnu            設置行號    :setshowmode       顯示是輸入模式還是替換模式    :set ts=4                 為文本輸入設置 tab stops    :setnonumber        取消顯示行數    :.=                 查看當前行的行號    :=                  查看總行數    ctrl+g            顯示文件名、當前的行號、文件的總行數和文件位置的百分比

    參考:http://www.jb51.net/linuxjishu/155122.html

                http://blog.sina.com.cn/s/blog_4ce89f200100vkb5.html

                http://www.cnblogs.com/afant/archive/2009/03/11/1408745.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本大道亚洲视频| 亚洲专区国产精品| 国产一区二区三区免费视频| 欧美午夜精品久久久久久人妖| 成人高h视频在线| 亚洲黄色成人网| 亚洲国产精品中文| 日韩中文字幕久久| 亚洲伊人久久综合| 亚洲欧洲在线观看| 黑人巨大精品欧美一区二区| 青青青国产精品一区二区| 精品视频—区二区三区免费| 日韩在线视频网| 久久亚洲综合国产精品99麻豆精品福利| 91精品免费久久久久久久久| 国产成人免费91av在线| 美女少妇精品视频| 亚洲高清福利视频| 日韩av成人在线| 97久久精品人人澡人人爽缅北| 精品视频—区二区三区免费| 国产精品夜间视频香蕉| 国产精品久久久久免费a∨| 亚洲综合在线小说| 亚洲第一在线视频| 5566成人精品视频免费| 欧美色另类天堂2015| 国产精品爽爽爽爽爽爽在线观看| 国内精品久久久| 国产精品黄色影片导航在线观看| 亚洲韩国日本中文字幕| 精品亚洲一区二区三区在线播放| 日韩高清有码在线| 国产精品大片wwwwww| 国产成人精品久久| 欧美黑人性视频| 91中文字幕在线| 日韩国产欧美精品在线| 国产亚洲精品久久久久久牛牛| 久久综合免费视频| 国产精品扒开腿做爽爽爽的视频| 亚洲精品有码在线| 亚洲va欧美va国产综合剧情| 热久久这里只有| 欧美肥臀大乳一区二区免费视频| 欧洲亚洲妇女av| 中文字幕亚洲国产| 亚洲电影免费观看高清完整版在线| 国产精品福利在线| 亚洲深夜福利视频| xxxx欧美18另类的高清| 国产精品免费在线免费| 国产成人精品亚洲精品| 国产日韩在线一区| 国产色视频一区| 精品露脸国产偷人在视频| 国产精品高精视频免费| 国产精品视频精品| 亚洲一区中文字幕在线观看| 国产精品偷伦视频免费观看国产| 成人免费淫片视频软件| 亚洲美女av在线| 国产日韩欧美夫妻视频在线观看| 欧美日韩色婷婷| 欧美激情精品久久久| 91精品国产精品| 中文字幕免费精品一区高清| 欧美亚洲日本网站| 国产色视频一区| 成人精品在线视频| 一区二区三区在线播放欧美| 欧美制服第一页| 日韩av免费观影| 成人亚洲欧美一区二区三区| 亚洲欧美精品伊人久久| 亚洲欧美中文日韩在线| 欧美裸体男粗大视频在线观看| 91高清视频免费| 一区二区av在线| 国产精品久久电影观看| 中文日韩在线视频| 欧美激情第1页| 成人性生交xxxxx网站| 久久久久国产一区二区三区| 日韩在线观看视频免费| 97视频在线观看免费高清完整版在线观看| 欧美在线一级视频| 91丨九色丨国产在线| 国产午夜精品理论片a级探花| 日韩美女激情视频| 国产噜噜噜噜噜久久久久久久久| 亚洲国产欧美一区二区丝袜黑人| 欧美成人午夜激情| 亚洲色图国产精品| 亚洲美女av网站| 91麻豆国产精品| 亚洲性线免费观看视频成熟| 亚洲精品少妇网址| 国产成人av在线| 国产日韩专区在线| 日韩精品一二三四区| 久久精品国产免费观看| 欧美日韩国产一区二区三区| 另类专区欧美制服同性| 97精品国产97久久久久久春色| 欧美激情久久久久| 久久久www成人免费精品张筱雨| 欧美日韩国产精品一区二区三区四区| 精品高清美女精品国产区| 久久伊人免费视频| 午夜精品久久久久久久久久久久| 亚洲欧洲国产伦综合| 久久久久久久久久久网站| 欧美大成色www永久网站婷| 97国产真实伦对白精彩视频8| 日韩成人在线视频| 91极品女神在线| 日韩综合视频在线观看| 午夜精品福利视频| 黑人欧美xxxx| 欧美黑人极品猛少妇色xxxxx| 国产91精品最新在线播放| 欧美又大又硬又粗bbbbb| 精品欧美aⅴ在线网站| 91精品在线一区| 国产成人精品在线播放| 欧美日韩在线第一页| 欧美色视频日本高清在线观看| 亚洲偷欧美偷国内偷| 午夜精品一区二区三区在线视| 尤物精品国产第一福利三区| 中文字幕日韩精品在线| 欧美国产在线视频| 国产精品久久久精品| 久久91亚洲精品中文字幕奶水| 国产丝袜一区二区三区| 亚洲视频电影图片偷拍一区| 国产精品一区二区三区毛片淫片| 亚洲精品网址在线观看| 成人午夜在线观看| 日韩电影免费观看在线观看| 美日韩精品视频免费看| 亚洲精品久久在线| 国产精品精品久久久| 国产欧美va欧美va香蕉在线| 亚洲欧美日韩直播| 麻豆国产va免费精品高清在线| 欧美日本高清一区| 亚洲第五色综合网| 欧美性在线视频| 欧美国产精品人人做人人爱| 欧美精品在线第一页| 91久久久国产精品| 不卡av电影在线观看| 国产精品永久免费视频| 国产视频精品在线| 日本成人激情视频| 中文在线资源观看视频网站免费不卡| 欧美性xxxxx| 日韩欧美成人免费视频| 亚洲毛茸茸少妇高潮呻吟| 午夜精品福利电影| 亚洲另类激情图|