寫在前面, 語系對正則匹配會有影響。
特殊符號
代表意義
[:alnum:]
0-9, a-z, a-z
[:alpha:]
a-z, a-z
[:blank:]
空格和tab
[:cntrl]
鍵盤的控制按鍵
[:digit:]
0-9[:graph:]
除了空格和tab以外所有的按鍵
[:lower:]
a-z[:print:]
代表任何可以被列印的出來的字元
[:punct:]
代表標點符號
[:upper:]
a-z[:space:]
任何產生空白的字串
[:xdigit:]
代表十六進製制的數字型別
幾個例子:
grep -in 'the' ***.txt 忽略大小寫, 列出行號, 行中有沒有出現過 the
grep -n 't[ae]st' xx.txt
grep -n '[^g]oo' xx.txt 非, 不已g開頭
grep -n '[^[:lower:]]oo' oo前不已小寫字母開頭
grep -n '[^[:lower:]]oo'
grep -n '^[^a-za-z]' 不以字母開頭
grep -v '^$' xx.txt 匹配空白行 v 反向選擇
grep -n 'go\ a.txt 注意{} 要轉義
-n 使用安靜模式,在一般的sed用法中, 所有來自stdin的資料會被列出到螢幕上。但如果加上了-n引數後,則只有經過sed處理的那一行才會被顯示出來
-e 直接再命令列模式進行seb編輯操作
-f 直接將sed的操作寫在乙個檔案內,
-r sed的操作使用的是擴充套件的正規表示式, 預設的是基礎的正則
-i 直接修讀取的檔案內容, 而不是螢幕輸出
n1,n2 function n1, n2指定操作的行,
a 新增, a後面可以接字串, 加再當前行的下一行
c 替換, c後面字串, 將替換n1, n2的行
d 刪除
i 插入, 後面加字元, 插入當前行的上一行
p 列印
s 替換, 可以搭配正則, s/ / /g
nl /etc/passwd | sed '2,5d' nl 代代行號列出檔案的內容,刪除2到5行
nl /etc/passwd | sed '2d' 只刪除第二行
nl /etc/passwd | sed '2,&d' 刪除第三行和它後面所有的行
nl /etc/passwd | sed '2a ******' 在第二行後面, 就是第三行,加入***,
原本的第三行變成第四行, 但是nl顯示新加的沒行號。 p374
nl /etc/passwd | sed '2a ******x \[enter]
sasdsd' 插入多行
nl /etc/passwd | sed '2,5c ***x' 正行替換, 被替換的行變成乙個***x
nl /etc/passwd | sed -n '2,5p' 列印2到5行, 注意要加-n
sed 's/要替換的字串/新的字串/g'
/sbin/ifconfig eth0 | grep 'inet' | sed 's/^.*inet //g'
不管它/sbin/ifconfig eth0是什麼意思, 就是找到有inet所有的行,^.*inet 替換成空
直接修改內容
sed -i 's/\.$/\!/g' xx.txt 注意有轉義, 就是 \.$ 以.結尾的, 都換成!
加了 -i 可以直接修改檔案內容。 而不是輸出在螢幕上
egrep <==> gerp - e
egrep -v '^$|^#' ***.txt v 反選
last -n 5 | awk '' 注意單引號和雙引號的使用,
以tab 分割每行, 取出第一欄和第三欄
$0 代表一整行資料, $1第一欄
awk 還有如下的變數nf
每一行擁有的總段數,幾欄
nr處理的是第幾行資料
fs目前的分隔符, 預設時空格
[root@ ~]# last -n 5 | awk ''
root lines: 1 columns: 10
root lines: 2 columns: 10
root lines: 3 columns: 10
root lines: 4 columns: 10
root lines: 5 columns: 10
加上邏輯判斷
cat /etc/passwd | awk ' $3 < 10 '
如果第三欄小於10, 則按要求列印
但是第一行沒顯示出來, 因為fs=":" 從第二行才開始生效
所以可以這樣
cat /etc/passwd | awk 'begin $3 < 10 '
-b 忽略一行多個空白差異 do it 和 do it 的擦別
-b 忽略空白行差異
-i 忽略大小寫
diff passwd.old passwd.new
< 4d3 左邊的檔案第四行被刪了, 基準是右邊的第三行
< 6c5 左邊檔案的第六行被替換成右邊的第五行
。。。。。。
-l 列出雖有不同地方, 預設不加, 只列出乙個不同
cmp passwd.ord passwd.new
linux 從頭開始 二
du h 檢視每個檔案和目錄的的磁碟使用空間 df h 檢視磁碟分割槽上可使用的的硬碟空間,相當於win的我的電腦,檢視每個分割槽使用情況 ln 原始檔 做成的硬鏈結 1 檔案有相同的 inode 及 data block 2 只能對已存在的檔案進行建立 3 不能交叉檔案系統進行硬鏈結的建立 就是只...
Deep Learning 從頭開始
deep learning已經火了好久,有些人已經在這裡面耕耘了好多年,而有些人才剛剛開始,比如本人。如何才能快速地進入這個領域在較短的時間內掌握deep learning最新的技術是值得思考的問題。就目前的情況看,通過網路上的課程及各種tutorials以及各種 來研究這個領域是最佳的途徑。經過一...
git從頭開始
當你本地修改了乙個檔案,而且該檔案被另乙個人修改,並push了,那麼 users terry workspace git練習 git practise git master git pull updating 67e4e18.cdbf666 error your local changes to t...