撒馬利亞文翻譯來看一個最簡單 翻譯sed饬令
yctseng@ubuntu:~/sed$ sed -i '/ken2/d' ken.txt
ken1
認識sed的操作後,接下來的重點就是SED-SCRIPT的變化啦,我們就從我最經常使用 翻譯3個類型來解說 翻譯社
喔喔喔~~ ken2那一行不見了,如許有無略微對sed可以做的事有點概念了呢?
也許會有人想問,那我不克不及直接用>把剛剛output的成果再存到ken.txt裡嗎? 謎底是不可 翻譯,這麼做的結果會讓ken.txt釀成一個空檔案 翻譯社
本來,如果我們sed若是不加任何參數的話,sed只會將檔案內容讀出來,根據SED-SCRIPT對內容做處置,然後將結果output到stdout上,其實不會回存到檔案裡,如果你想直接讓檔案內容隨著改變 翻譯話,就要加-i這個OPTION
's/{REGULAR-EXPRESSION}/{NEW-PATTERN}/g'
'/^ken/d' 將ken開首的那一行刪除
ken1
1. 庖代檔案裡 翻譯文字
yctseng@ubuntu:~/sed$ sed '/ken2/d' ken.txt > ken.txt
那sed究竟是作什麼用 翻譯?正如man page裡說的,filtering and transforming text,我小我經常使用來
yctseng@ubuntu:~/sed$ echo -e 'ken1nken2nken3' | sed ''
2. 刪除某行
ken3
ken1
's/ken/amber/g' 將所有ken字串替代成amber
'/{REGULAR-EXPRESSION}/d'
◎ SED-SCRIPT
ken2
yctseng@ubuntu:~/sed$ echo -e 'ken1nken2nken3' | sed '/ken2/d'
'/#define KEN.*/a#define AMBER' 在含有#define KEN的那一行以後新增#define AMBER這行
咦? 方才不是已把ken2刪除掉了?怎麼還在?
1. 庖代檔案裡的文字
2. 刪除某行
3. 在某行前(後)到場新一行的文字
◎ What is sed?
其實我小我對SED-SCRIPT的認知很簡單,就是
◎ Introduction to the basic usage of sed
趁著開會,來寫一下sed 翻譯心得好了 翻譯社
'/{REGULAR-EXPRESSION}/a{NEW-LINE-APPENDED}'
yctseng@ubuntu:~/sed$
ken3
yctseng@ubuntu:~/sed$ cat ken.txt
ken3
yctseng@ubuntu:~/sed$ cat ken.txt
ken3
ken1
yctseng@ubuntu:~/sed$ sed '/ken2/d' ken.txt
不過要注重的是,這時候你若是去看ken.txt的內容
's/^ken/amber/g' 將所有在行首的ken字串替代成amber,若是ken不是在行首的字串,則不會被庖代掉。
那如果想直接對某一個檔案內容做處置呢? 很簡單,在後面加上檔名。
'/#define KEN.*/i#define AMBER' 在含有#define KEN 翻譯那一行之前新增#define AMBER這行
's/a([0-9])b([0-9])/A1B2/g' 將anbn替代成AnBn,n代表0-9任1數字。REGULAR-EXPRESSION中呈現的第1個()包起來所mapping到的字串會對應到NEW-PATTERN中 翻譯1,第二個對應到2,依此類推。。-> 翻譯社|,-> 翻譯公司|的-> 翻譯
3. 在某行前(後)到場新一行的文字
那如果我的SED-SCRIPT改成 '/ken2/d' 結果會變如何呢?
's/ken.*/amber/g' 將所有"ken後面接隨意率性字元任意長度" 翻譯字串替換成amber。
'/{REGULAR-EXPRESSION}/i{NEW-LINE-INSERTED}'
其實若是你要找 翻譯字串很簡單,你乃至用不著用正規式表達,直接用一個完全的字串取代就好了,最一開始的例子就是這個樣子;而mapping到後做的某件事包羅了代替、刪除(過濾)、插入。
ken2
還有一點要留意的是,sed在處置時,基本上都是以一行為單元,基本的SED-SCRIPT只會試圖在同一行裡面找字串來mapping。假如你需要跨行,其實也是做得到 翻譯,只是對照複雜而已,就先不談,google上可以找到資料。
yctseng@ubuntu:~/sed$ echo -e 'ken1nken2nken3' > ken.txt
yctseng@ubuntu:~/sed$ echo -e 'ken1nken2nken3' > ken.txt
sed OPTION '{SED-SCRIPT}' INPUT-FILE
瞭解了嗎?
sed是啥意思?man sed可看到 stream editor for filtering and transforming text,不外個人照舊習慣聯想到種子,不外不重要啦,知道是sed怎麼用就行了。
不外在學sed之前,可能要先對正規表達式有一點概念,在這裡就不介紹正規表達式,究竟這個要講授起來又是落落長 翻譯一篇了,臨時假定你在看這篇文章之前已對正規表達式有一些基本的概念了 翻譯社
1. 正規式mapping
2. mapping到了做某件事
'/^ken.*amber$/d' 將ken開頭amber結尾的那一行刪除
ken1
yctseng@ubuntu:~/sed$ echo -e 'ken1nken2nken3' > ken.txt
yctseng@ubuntu:~/sed$ cat ken.txt
sed的語法可能長得像這個模樣
好,聽懂了上面的描寫之後,就來看一下底下3種應用了。
ken3
原因我好像在哪裡看過,有點忘了,只記得似乎是跟shell command在執行時, > 跟 sed 的履行挨次有關,以後看到再彌補 翻譯社
在上面這個例子中,sed憑據你給它的SED-SCRIPT來對前面pipe過來的內容作處置懲罰,由於SED-SCRIPT是空 翻譯,所以sed就不會作任何處置懲罰,直接output到stdout。
本文來自: http://blog.xuite.net/yctseng/notes/24568350-sed有關翻譯的問題歡迎諮詢天成翻譯社
留言列表