1. 總體介紹 Linux常用的文本處理命令
-
more/less: 逐屏顯示文件 -
cat與od: 一次性列出文件內(nèi)容 -
head與tail: 顯示文件的頭部或者尾部 -
tee: 三通 -
wc: 字數(shù)統(tǒng)計 -
sort: 對文件內(nèi)容進行排序 -
tr: 翻譯字符 -
uniq: 篩選文件中的重復行
2. more/less: 逐屏顯示文件
more/less常用快捷鍵,推薦使用less代替more命令。
-
<space>: 空格鍵,翻頁 -
<Enter>: 回車鍵,向下翻一行 -
q: 退出 -
j與k: 向上或者向下翻一行 -
/: 查詢關鍵字
3. cat與od: 一次性列出文件內(nèi)容
cat: 命令來源: concatenate:串接,文本格式打印。
常用參數(shù):
-n: 打印文件的時候,帶上行號。
od: 命令來源: octal dump:逐字節(jié)打印,可以用八進制/十六進制打印。
常用參數(shù):
-c: 按照字符打印,遇到不可打印字符,打印編碼
-t c: 按照字符打印,如果字符不可打印,則打印一個八進制的ASCII碼。
-t x1: 以一個字節(jié)為單位,每個字節(jié)都按照十六進制打印
-t o1: 以一個字節(jié)為單位,每個字節(jié)都按照八進制打印
-t d1: 以一個字節(jié)為單位,每個字節(jié)都按照十進制打印(但是超過127以后,會顯示負數(shù))
-t u1: 以一個字節(jié)為單位,每個字節(jié)都按照u(無符號整數(shù))打印
下列方式可以以16進制顯示一個字符串的編碼。
echo abcdABCD | od -t x1
4. head與tail: 顯示文件的頭部或者尾部
head與tail: 不帶參數(shù),默認顯示文件的頭10行或者尾10行。
常用參數(shù):
-n: 指定顯示的行數(shù)。
tail -f: 可以持續(xù)監(jiān)視一個文件,只要文件有變化,立馬更新。(-f:是forever的意思。)
5. tee: 三通
tee:將標準輸入stdin得到的數(shù)據(jù),抄送到標準輸出stdout顯示,同時存入磁盤文件中。
舉例:
# 將./myap的輸出打印終端中,同時將輸出保存到【myap.log】文件中。
./myap | tee myap.log
6. wc: 字數(shù)統(tǒng)計
wc:列出文件一共有多少行,有多少個單詞,多少字符。
常用參數(shù):
-l: 只列出行數(shù)。
# 顯示系統(tǒng)有多少個進程
ps -ef | wc -l
# 顯示當前有多少個用戶登陸
who | wc -l
7. sort: 對文件內(nèi)容進行排序
常用參數(shù):
-n: [number]對于數(shù)字按照算數(shù)值大小排序,而不是按照字符串比較規(guī)則。
比如:123與67:
- 如果按照字符串排序的話,67比123大;
- 如果按照數(shù)字值排序的話,123比67大
8. tr: 翻譯字符
tr string1 string2: 將標準輸入拷貝到標準輸出;如果標準輸入中出現(xiàn)string1中包含的字符,那么替換為string2中對應的字符,然后再拷貝到標準輸出。
echo abcdABCD | tr aBc AbC
# 輸出結果如下:
AbCdAbCD
用 [ ]指定一個集合
# 將小寫字母轉換為大寫字母
echo abcdABCD | tr '[a-z]' '[A-Z]'
# 輸出結果如下:
ABCDABCD
用 \加上三個八進制數(shù)字(類似C語言)表示一個字符
# 將%改為換行符,注意不要漏掉必須的單引號
cat file1 | tr % '\012'
8. uniq: 篩選文件中的重復行
uniq: 這個命令后面只允許出現(xiàn)一個文件。
常用參數(shù):
-u: [uniq]只保留沒有重復的行
-d: [duplicated]只保留有重復的行(但是只打印一次)
<space>: 如果沒有選項,打印沒有重復的行和有重復的行(但是只打印一次)
-c: [count]計數(shù)同樣的行出現(xiàn)的次數(shù)
注意:重復的行:指的是緊鄰的兩行內(nèi)容相同,所以uniq命令一般都會放在sort命令的后面。