本文記錄的是自己在學習《Linux私房菜》中正則表達式的筆記。
關於行尾符$
如果文件本身沒有內容,比如使用touch新建的文件,那麼$將會沒有意義。例如下面操作:
先使用touch新建了一個test.txt文件,然後嘗試使用sed命令去在行尾增加內容,但是沒有成功(緊接著的cat命令沒有輸出任何東西),然後我使用vim給test.txt手動增加了一行內容“add by vim”,然後再使用同樣的sed命令就成功了,如後續cat命令輸出結果。
命令sed
sed是一個十分有用的管道命令,功能很多,而且都是用的比較多的場景。
sed [-nefri] [動作]
下面是動作說明,動作需要使用單引號‘’,且可以用兩個數字或者$來選擇進行動作的行數,‘[n1[,n2]]function’,比如'2,5d','2d','3,$d'這三種形式,分別表示選擇[2-5]行,第2行,[3-最後一行]。也可以使用正則表達式來選擇行,比如'/正則表達式/d',則將對符號正則表達式的行進行刪除動作。function有如下操作:
關於對function的作用范圍,測試表明:
使用a來增加多行:在每一行後面都必須使用反斜槓“\”來進行新行的增加,例如:test.txt中本來只有一行:this is a test file.,然後使用a增加了三行
使用sed刪除空行:sed -i '/^$/d' filename,解釋:-i表示直接修改文件而不在屏幕上顯示,/^$/使用的是正則表達式,在正則表達式中^表示行首,$表示行尾,行尾與行首之間沒有東西則是空行,d表示刪除。
sed命令有一個查找替換功能:
sed 's/要被替換的字符串/新的字符串/g' filename
其中,要“被替換的字符串”是使用正則表達式的,而對於“新的字符串”那肯定就是普通的字符。下面是我做的一些測試。
http://xxxxxx/Linuxjc/1161165.html TechArticle