1、使用Vim編輯器將==、>=、<=、!=這四個比較符號量變的單詞交換位置
注意:該命令僅能交換比較符號左右兩邊都是單個變量的情況,如有函數或者數組之類的情況,請輸入n不交換。
vim底行命令:
:%s#\(\w\+\)\([!><=]=\)\(\w\+\)#\3\2\1#gc
命令解釋:
1. % 表示整個文件,等價於 1,$
2. s 替換命令
3. # 分隔符,也可以用反斜槓或者冒號,推薦用井號,不然很多場景正則表達式各種轉義跟分隔符會看瘋你
4. \(\w\+\) 匹配一整個單詞,正則表達式中可以用\(和\)將一個整體的表達式括起來,而\w\+表示整個單詞
5. [!><=]= 不再解釋了
6. \3\2\1 前面兩個#之間有三個\(和\)括起來的表達式,左到右一次爲1、2、3,現在3跟1交換位置,表示前面的表達式3和表達式1交換位置
7. g 全局替換
8. c 替換前詢問,輸入y表示同意替換,n表示不替換。
2、linux刪除某個特定文件之外的其他所有文件
如題:
當前目錄下有如下文件:
aaa11111111111.c
aaa222222.c
aaa33333333.c
aaabbb.c
lsy.c
makefile
當前需要僅保留lsy.c makefile aaab.c其他全部刪除,該使用什麼正則表達式來進行匹配?
命令:rm aaa!(bbb).c -rf
命令解釋:
!()表示對括號中的表達式取反,該命令的意思就是:刪除【aaa】開頭,【.c】結尾切中間不是bbb的所有其他文件。