. wc 用於統計文件的行數,單詞,或位元組數 -l # 統計行數 -L # 列印最長行的長度,一般腳本中判斷字元長度 -c # 統計位元組數 -w # 統計單詞數 -m 統計字元數 . iconv 轉換文件的編碼格式 iconv [options] [-f from-encoding] [-t to- ...
. wc
用於統計文件的行數,單詞,或位元組數
-l # 統計行數
-L # 列印最長行的長度,一般腳本中判斷字元長度
-c # 統計位元組數
-w # 統計單詞數
-m 統計字元數
. iconv
轉換文件的編碼格式
iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]...
源編碼 新編碼 輸入文件
-f # 從編碼A轉換
-t # 轉換為編碼B
-l # 顯示系統支持的編碼
-o # 將輸出輸入到指定文件
iconv -f gb2312 -t utf-8 GB2312.txt
. dos2unix
將DOS格式文件轉換成UNIX格式
dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]
windows系統下,文本是以"\r\n"作為換行標誌的,而UNIX下的文本文件是以“\n”作為換行標誌的
反之,unix2dos將linux文件的“\n”轉化成Windows文件的“\r\n”
. diff
逐行比較純文本文件的內容
預設顯示格式有如下三種提示
a-add
c-change
d-delete
"<"打頭的行屬於文件1, ">"打頭的行屬於文件2
-y # 併排輸出顯示兩個文件的不同之處
. vimdiff
此命令是調用vim命令打開文件可以同時打開2個,3個,最多4個文件,並且會以不同的顏色來區分文件的差異
. rev
按行反向輸出文件內容,將內容倒著輸出
[root@mysql-141 ~]# echo {1..10} 1 2 3 4 5 6 7 8 9 10 [root@mysql-141 ~]# echo {1..10}|rev 01 9 8 7 6 5 4 3 2 1
. tr
從標準輸入中替換,縮減或刪除字元,並將結果寫到標準輸出
-d 刪除字元
-s 保留連續字元的第一個字元,刪除其他字元
-c 使用第一個字元串set1的補集,取反
tr 'abc' 'xyz' <xiaolizi.txt # tr命令jie接文件比較特殊,需要輸入重定向,將穩中出現的abc替換為xyz,所有a替換成x,b-y,c-z tr '[a-z]' '[A-Z]' <xiaolizi.txt tr -d 'xiaolizi'<xiaolizi.txt # 使用參數-d刪除字元 tr -d '\n\t' <xiaolizi.txt # 使用-d參數刪除所有換行符和製表符 echo 'xxxiiiaaalllliiiizzz'|tr -s xiaolizi # 將連續字元壓縮成一個 tr -c ‘0-9’ ‘*’ <xiaolizi.txt # 取反操作
. tee
將數據重定向到指定文件和屏幕上,各輸出一份
-a 項文件追加內容,而不是覆蓋
[root@mysql-141 ~]# ls 01-monitoring.py 02-ps_pid.sh backup.sh new_aa test 01-monitoring.sh anaconda-ks.cfg install.log new_ab test.txt 02-ps_name.sh backup_check.sh install.log.syslog new_ac youhua.sh [root@mysql-141 ~]# ls|tee -a ls.txt 01-monitoring.py 01-monitoring.sh 02-ps_name.sh 02-ps_pid.sh anaconda-ks.cfg backup_check.sh backup.sh install.log install.log.syslog new_aa new_ab new_ac test test.txt youhua.sh [root@mysql-141 ~]# cat ls.txt 01-monitoring.py 01-monitoring.sh 02-ps_name.sh 02-ps_pid.sh anaconda-ks.cfg backup_check.sh backup.sh install.log install.log.syslog new_aa new_ab new_ac test test.txt youhua.sh