1 --第4天--文本處理工具和正則表達式
2
3 各種文本工具來查看,分析,統計文本
4
5 文本查看工具查看:
6 cat
7 -n 顯示行號
8 -b 只給非空行編號
9 -E 顯示每行的結尾,用$表示
10 -s 壓縮多個空白行只顯示1行
11 cat file1 > file2 查看文件到標準輸出重定向到另外一個文件,實現替換或者追加。
12
13 tac
14 反向輸出文件到標準輸出,正好與cat相反
15
16 rev 可以把文件內容按照逆序讀出來。
17
18 more
19 將文檔分頁顯示
20
21 less
22 和more一樣,並且支持搜索,使用/
23 less命令是man命令的分頁器
24
25 head:默認只讀取前10行內容
26 -c 10 讀取前10個字符
27 -n# 讀取#行內容
28
29
30 tail:默認讀取後10行內容
31 -c
32 -n#
33 -f 可以追蹤文件更改,常用於日誌文件監控 比如:tail -f /var/log/messages
34
35 getent
36 查看用戶和組相關文件,實例:genent passwd, getent shadow...
37
38 vipw
39 相當於:vim /etc/passwd
40
41
42 cut 切割
43 -b 按指定字節數截取 echo "1:2:3:4"|cut -b1-3 --> 1:2
44 -c 按指定字符數截取 echo "1:2:3:4"|cut -c1-3 --> 1:2
45 -d 指定分隔符(delimiter)
46 -f 指定要截取的列,與-d合用echo "1:2:3:4"|cut -d:-f3 --> 3
47
48 paste 合併2個文件中行號相同的行爲一行,可以用於將2個文件水平合併
49 paste file1 file2
50 -d 指定分隔符,默認爲tab
51 -s 將每個文件內容輸出在一行
52
53
54 文本分析工具:
55
56 wc 文本數據統計
57 wc file 每列表示:行數,單詞數,字符數,文件名
58 -l 行
59 -c 字節數
60 -w 單詞數
61
62 sort 排序
63 -t 指定分隔符
64 -k 指定特定的列,按照這列的內容,進行特定規則的排序,默認按照從小到大,重新調整文檔每行的位置,配合一些選項也可以改變
65 -r 反向排序
66 -n 按照數字排序
67 -R 隨機排序
68 -u 刪除重複的行
69 ...
70
71 uniq 刪除前後銜接的相同的行,與sort -u不一樣
72 -c 統計重複行的次數,常與SORT一起用 sort file1.txt|uniq -c
73
74 diff file1 file2 比較2個文件內容
75 -u 可以生成補丁文件-->xxx.patch
76 patch -b xxx.patch file2 可以將file2恢復
77
78
79 grep 使用模式過濾文本,處理文本行。支持正則表達式
80 匹配字符串:grep "abc"
81 匹配文件中字符串:cat /abc/test.txt |grep "abc"
82 支持匹配變量:grep "$USER" /etc/passwd
83 支持匹配命令執行結果:grep `hostname` /etc/hostname
84
85 -m # 匹配到的結果只顯示前#行
86 -i 忽略大小寫
87 -v 顯示未匹配的行
88 -n 顯示行號
89 -H 把文件名顯示出來
90 -c 顯示匹配了多少行
91 -o 只顯示匹配到的字符
92 -q 靜默模式,結果保存在$?變量中,0表示有匹配項
93 -w 匹配整個單詞
94
95 -E 等價於egrep
96 -F 等價於fgrep 不支持正則表達式
97 參考:man 7 regex
98
99 grep支持基礎正則表達式和擴展正則表達式,其中擴展正則表達式,就是把基礎正則表達式的\(轉義符),去掉!
100 分爲4類:字符匹配,匹配次數,位置錨定,分組
101
102 字符匹配:[0-9],[a-z],[A-Z],[:digit:],[:alpha:],[:alnum:],[:lower:],[:upper:][:blank:],[:space:],[cntrl],[:graph:],[:print:]
103 . 單個任意字符
104 [] 指定範圍內的單個字符
105 [^] 指定範圍外的單個字符
106
107 次數匹配:
108 * 0次1次或多次
109 + 1次或多次
110 ? 1次或0次
111 {m} m次
112 {,m} 0-m次
113 {m,} m~無數次
114 {m,n} m~n次
115 .* 任意字符任意次
116
117 位置錨定:
118 ^ 行首
119 $ 行尾
120 \< 詞首
121 \> 詞尾
122 ^$ 空行
123 ^pattern$ 匹配整行
124 \b 同樣可以表示詞首或詞尾
125
126
127 分組:
128 分組即用()將pattern包含,支持後向引用!
129
130
131 以下博客地址爲上面正則表達式的一些應用:https://blog.51cto.com/13182370/2360917
Linux學習筆記4:正則表達式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.