一、文件瀏覽
cat 查看文件內容 more 以翻頁形式查看文件內容(只能向下翻頁) less 以翻頁形式查看文件內容(可以上下翻頁) head 查看文件的頭幾行(默認10行) tail 查看文件的尾幾行(默認10行)
二、正則匹配打印行
命令 grep 用來全局匹配正則表達式並打印所在行:
grep 'mingc' /etc/passwd 在該文件中匹配mingc的用戶信息並打印所在行 find / -user mingc | grep ".*\.png$" 查找mingc的所有png文件(管道操作)
常用參數:
-i 搜索時忽略大小寫 -n 顯示結果所在行數 -v 輸出不匹配該正則的行(類似於一個取反操作) -An 在輸出的時候包含結果所在行之后的指定n行 -Bn 在輸出的時候包含結果所在行之前的指定n行
三、文本切割打印字段
命令 cut 常用來切割文本行、打印某些字段:
cut -d:fl /etc/passwd 打印passwd文件中冒號分割的第1個字段(用戶名)(列出來多行的用戶名) grep mingc /etc/passwd | cut -d: -f3 打印mingc的用戶信息匯總冒號分割的第3個字段(uid)
常用參數:
-d 指定分割字符(默認Tab) -f 顯示特定序號的字段(從1開始) -c 顯示特定范圍字符(從第幾個到第幾個)
示例:
grep mingc /etc/passwd | cut -d: -f3 打印mingc的用戶信息中冒號分割的第3個字段(uid) grep mingc /etc/passwd | cut -d: -f6,7 打印mingc的用戶主目錄和登錄Shell grep mingc /etc/passwd | cut -c1-5 打印mingc的用戶信息中第1~5個字符 grep mingc /etc/passwd | cut -c1- 打印mingc的用戶信息中第1個字符之后的所有字符 grep mingc /etc/passwd | cut -c-5 打印mingc的用戶信息中第5個字符之前的所有字符
四、文本統計
命令 wc 用於統計文件的行數、單詞數、字符數等:
wc test.md
不帶參數時默認輸出一行,字段格式為:
行數 單詞數 字符數 文件名
常用參數:
-l 只統計行數 -w 只統計單詞數 -c 只統計字節數 -m 只統計字符數
五、文本排序
命令 sort 用於對文件內容進行排序(也可以對STDIN進行排序):
sort filename
常用參數:
-r 逆向(倒序)排序 -n 基於數字排序 -f 忽略大小寫 -u 去重復(剔除重復行) -t<分割符> 指定分隔符(一般配合-k參數使用,單純分割毫無意義) -k n 當指定分割符時,按照第n個字段進行排序(序號n從1開始)
-r、-n、-t、-k 參數可以配合使用:
上圖中,把 test.md 文件內容的每行按照冒號分割、基於數字對第3個字段進行逆向排序。
六、剔除重復行
命令 sort -u 可以剔除文件內容重復行,但副作用是進行了排序。
命令 uniq 可以剔除文件內容(相鄰的)重復行:
七、文本比較
命令 diff 用來比較兩個文件的區別:
diff test1.md test2.md
常用參數:
-i 忽略大小寫 -b 忽略空格字符 -u 統一顯示比較信息(一般用來生成patch文件)
示例:
diff -u old.md new.md > update.patch 把文件的更新信息生成到補丁文件
八、拼寫檢查
命令 aspell 用來顯示檢查英文拼寫:
aspell check filename aspell list < filename
(CentOS 6.9 64位系統里似乎沒有這個命令,也不常用,不詳述)
九、字符轉換
命令 tr 用於從標准輸入對字符進行轉換處理。如果處理來自文件的輸入,需要重定向。
刪除關鍵字:
tr -d 'keyword' < filename
轉換大小寫:
tr 'a-z' 'A-Z' < filename
十、流式編輯——搜索替換
sed 命令是一種可以配合正則表達式使用的流式編輯工具。處理文件流時,把當前處理的行存儲在臨時緩沖區,稱“模式空間”(pattern space),然后處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接着處理下一行,這樣不斷重復,直到文件末尾。文件內容並沒有發生改變,除非使用重定向存儲輸出。sed 命令主要用來自動編輯一個或多個文件、簡化對文件的反復操作、編寫轉換程序等。
語法:
sed [options] 'command' file(s) sed [options] -f scriptfile file(s)
常用參數 options:
-e<script> 指定一個script來處理文本 -f<script> 指定一個script來處理文本 -n 僅顯示處理后的結果
常用命令 command:
d 刪除行 D 刪除第一行 s 替換指定字符 h 拷貝內容到緩沖區 H 追加內容到緩沖區 g 獲取緩沖區的內容,替換當前文本 G 獲取緩沖區的內容,追加到當前文本后面 p 打印行 P 打印第一行 q 退出sed
示例:
sed 's/linux/unix/g' filename s表示搜索替換,linux替換為unix,g表示全局替換,filename目標文件 sed 'l,50s/linux/unix/g' filename 1到50行進行全局替換 sed -e 's/linux/unix/g' -e 's/ming/mingc/g' filename -e參數替換多個 sed -f script filename 指定一個script來處理文件
相關鏈接:sed 命令 - Linux 命令大全