Linux 第13天 文本操作命令
時間: 20180730
文本操作命令學習
/dev/urandom 一個生成隨機字符的設備
cat /dev/urandom |tr -dc '[:alnum:][:print:]' |head -c10 輸出一個隨機字符串
做密碼使用
paste 將兩個文檔的內容依照行號對位輸出至標準輸出
-d 指定兩個文檔的對位輸出時中間的分隔符,默認為tab
-s 將每個文檔合並成一行,然後再將兩個文檔合並在一起,變成兩行內容
wc 統計文檔的行號字符等
-l 輸出文檔的行號
-w 輸出文檔的字數
-c 輸出文檔的字節數
-m 輸出文檔的字符數
netstat 輸出網絡連接,路由表,接口狀態信息等
sort 排序文檔的行
-t 指定要排序的字段分割符
-k 指定要排序的第幾字段
-n 以數字大小方式排序
-r reverse 反轉排序
-u 去重復,去除重復的行
-R 隨機排序
uniq 輸出或忽略重復的行
-c 輸出重復行的數量
-u 只輸出不重復的行
-d 只輸出重復的行
diff 輸出兩個文件的不同之處
diff -u file1 file2
-u 輸出兩個內容之差,並顯示怎樣修改其每一個文件後會和另外一個相同
patch 可以通過diff所比對的不同來通過其中一個文件來還原另外一個文件
patch -b orifile diffFile
-b 備份文件
grep
-v 反轉所匹配到的行
-i 匹配時忽略字符大小寫
-n 顯示所匹配到的行的行號
-c 顯示所匹配到的行的次數
-o only 只顯示匹配到的文本
-q 靜默模式,表示只查找是否匹配到,使用echo $?可以查詢是否匹配到,用來做檢測使用
-A 輸出匹配到的行加上後N行的內容
-B 輸出匹配到的行加上前N行的內容
-C 輸出所匹配的行前後多幾行內容
-e 實現匹配多個pattern,之間是或關系
-w 表示匹配一個單詞,即中間是以非下劃線,和數字組成的一個單詞
-E 使用擴展的正則表達式
-F 使用fgrep即不使用正則表達式,直接匹配其字符串,速度快
字符匹配
. 匹配任意單個字符
[] 匹配中括號中指定的任意單個字符
[^] 匹配除中括號中指定的任意單個字符
[:alnum:] [:digit:] [:upper:] [:lower:]
[:punct:] [:alpha:] [:space:] [:blank:]空格和制表符
[:print:] 可打印字符 [:cntrl:]
匹配次數
\? 匹配前方字符0次或1次
* 匹配前方字符任意次,包含0次
.* 表示任意字符任意次
\{n\} 匹配前方字符n次
\{n,\} 匹配前方字符至少n次
\{n,m\} 匹配前方字符至少n次,最多m次
\{,m\} 匹配前方字符m次以內,包含0次
\+ 匹配前方字符至少一次
位置錨定
\< 或 \b 匹配詞首,即該單詞詞首是以非下劃線,或數字,字母隔開的單詞
\> 或 \b 匹配詞尾
\<word\> 匹配整個單詞
^ 匹配行首
$ 匹配行尾
^$ 匹配空行
^[[:space:]]*$ 匹配帶空格的空行
分組
將一個模式或多項匹配合起來成一個整體,供後向引用
後向引用是引用前方括號中的模式所匹配的字符,而非模式本身
\(pattern\)
擴展正則表達式
字符匹配(與基本正則匹配是有的將反斜線去除)
. 任意單個字符
[] 指定範圍內任意單個字符
[^] 指定範圍外任意單個字符
匹配次數
* 前方字符任意次數
? 前方字符0次或1次
{n} 精確匹配前方字符n次
{n,} 匹配前方字符至少n次
{n,m} 匹配前方字符至少n次,至多m次
{,m} 匹配前方字符最多m次
位置錨定
^ 行首
$ 行尾
< 詞首
> 詞尾
分組
()
後向引用 \1,\2...
nmap 網絡探測和端口檢測工具
nl 輸出文檔的行號(只輸出有文本的行的行號)
last 輸出最近登錄此機器的用戶
lastb 輸出最近登錄此機器未成功的用戶
Linux 第13天 文本操作命令