1樓:匿名使用者
將帶有printf的行中的「%」符號替換成「$」;
:/printf/s/%/$/g
/printf/表示查詢printf的行,s/%/$/g s替換命令,將%替換成$ ,g表示全域性替換
將程式中的第60行到第65行之間的所有的數字刪除;
:60,65d
d為刪除命令,60,65表示行範圍
在程式中的第80行到90之間搜尋以小寫字母開始的行,並且找到後刪除該行;
(9)使用執行shell方式,在文字末尾插入當前日期;
:!date
當前編輯的文件丟失,使用vim的資料恢復功能找到(9)執行後的文件。
2樓:
這個要求可是不低呢。關於 unix/linux 系統中的一些正規表示式的熟練使用問題,那可不是任何一個人都能夠熟練掌握的。由於 shell 是 unix/linux 系統中功能最為強大的指令碼程式語言,故這個首先必須要熟練掌握 shell 程式設計(bash、或者是c-shell等),其次還必須要能夠熟練使用 awk、sed 等工具,然後再結合 shell 程式設計,最終才能夠達到使用者的各種要求。
如果不能夠達到以上的水平的話,那麼是無法完成這樣的要求的。
vim 正規表示式 查詢
vim中如何用正規表示式批量複製並修改字串
vim編輯器如何匹配如圖中的正規表示式,需要把檔案中匹配內容替換為空,無奈在vim或shell裡的sed測試無效
3樓:
sed內部有模式空間和保留空間之分。
通常情況下,sed從檔案中逐行讀入內容到模式空間內進行處理,一次只處理一行,所有你沒法直接匹配多行內容。
涉及用sed處理多行文字的問題,首先考慮直接匹配地址範圍來處理,不行的話其次還可以考慮利用sed的保留空間。
1)此問題直接用sed匹配地址範圍即可。
str="#方法一\n你好\n我好\n他好\n#方法二\nnihao\nwohao"
echo -e "$str" | sed '/^#方法一/,/^#方法二/d'
這樣就可以了,"#方法一"到"#方法二"以及之間的所有行就都被刪除了。
2)更復雜點的情況,通常我們還可以利用sed的保留空間來完成。
在處理這個問題上繁雜了點,但非常適合新手學習理解用。
echo -e "$str" | sed -n '/^#方法一/;/^#方法二/!};p'
通過h命令可以將模式空間裡的內容附加到保留空間,利用迴圈反覆操作(:a 設定標籤a;ba 跳轉到標籤a;n命令讀入下一行到模式空間),在保留空間內拼接成多行文字(通過\n分隔),然後通過x命令交換保留空間與模式空間的內容(或者通過g命令拷貝保留空間內容覆蓋到模式空間),這樣才在模式空間內得到多行文字,最後用d命令一下子刪除。
4樓:匿名使用者
在 vim 裡用 \_. 可以匹配跨行的內容。所以用:%s/#方法一\_.\#方法二//
就可以完成任務。\ 的意思是不貪心匹配。否則 \_.* 將直接匹配到檔案末。
另外,如果只是刪除的話,如 xiehuahere 所說,用:/#方法一/,/#方法二/d
要比用正則來的清楚的多。它的意思是刪除這兩個匹配行之間的內容。
用 sed 工作的方法參考 xiehuahere 說的就挺好。
5樓:栩箭
vim的正則與其他的正則區別有點點大。你在這種網頁上測試沒什麼用。
如果是想把文件中所有圖中黃色的5行字替換成空的話,用vim命令:
:%s/#方法一\(.\|\n\)*#方法二//g
誰給個匹配非字串的vim正規表示式
6樓:匿名使用者
匹配正規表示式,需要和匹配目的想聯絡。這樣往往可以化簡表示式並提高效率(包括編寫的和執行的)。
另外就是需要具體描述了,比如什麼樣的才算字串。不能一概而論。
在vim裡面能用正規表示式替換二進位制資料嗎
7樓:匿名使用者
原則上是可以的,但編輯二進位制資料需要使用者本人對檔案內容非常瞭解才行。用 vim 編輯二進行檔案的最基本概念,可以參考一下手冊:
:h 23.4
vim 擁有處理二進位制檔案的能力,但不是專門設計來幹這個的。通常寫程式去處理這樣的檔案比互動式編輯要容易。如果是針對專門的二進位制格式,使用專門的工具可能會更方便。
正規表示式問題
a za z a za z d 我測試怎麼可以 你測試不行,你得說一下詳細情況,舉個例子出來.要不然怎麼發現問題.你不測試一下就發啊 你這話怎麼就帶有不尊重人的味道 實際上,之前確實是沒有測試就發上來.那要是遇到一個是有測試才發上來的呢.這個正則,自我感覺它是正確的,你說不行後 也有去測試的.還是沒...
正規表示式如何獲取匹配的部分,怎樣獲取正規表示式匹配字串的一部分
要的那一部分用 括上,取組就行了 或者取出來後再來一次正則匹配 怎樣獲取正規表示式匹配字串的一部分 js如何用正規表示式獲取字串內的匹配部份?實現的效果 在字串中abcdefgname test sddfhskshjsfsjdfps中獲取name的值test 實現的機制 通過replace的 函式獲...
中英文冒號的正規表示式,冒號如何使用正規表示式表示
首先給你解釋你說的不明白的那兩個內容吧,定義是這樣的 pattern 匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行儲存供以後使用。這在使用 或 字元 來組合一個模式的各個部分是很有用。例如,industr y ies 就是一個比 industry industries ...