LInux指令-文件處理及輸出
#comm 文件比對工具
參數:
-1 不顯示左邊檔案(LEFT_FILE)的內容
-2 不顯示左邊檔案(RIGHT_FILE)的內容
-3 不顯示左右檔案比對完全相符的內容
-------------------------------------------------------------------------------
#grep:用關鍵字找尋檔案
grep -參數 '字串' 要尋找的來源檔案
參數:
數字:列出找到字串的檔案名稱和字串前後幾行的內容
-A 數字:列出找到字串的檔案名稱和字串後幾行的內容
-B 數字:列出找到字串的檔案名稱和字串前幾行的內容
-c:顯示找到該字串的個數,不會顯示檔案內容
-h:不會顯示檔名,只會顯示內容
-i:忽略大小寫
-L:只顯示檔名一次
-m:只找尋字串完全相同者
-n:顯示符合樣式列,並標出該列數編號
-v:反相搜尋
-e:遞迴處理
-------------------------------------------------------------------------------
#colrm:指定"列"移除
範例:
cat fileA
1234567890abcdefg
234567890abcdefgh
34567890abcdefghi
保留前面兩個字母
cat fileA | colrm 3
12
23
34
cat fileA | colrm 3 6
移除第三個字元到第六個字元
------------------------------------------------------------------------------
#cut顯示指定範圍的行文
cut [OPTION]... [FILE]...
參數:
-b:顯示指定的"位元"數內容,跳格與倒退鍵以 1 位元計算。
-c:顯示指定的"字元"數內容
-d:自訂欄位的區隔字元(預設值是跳格字元-TAB)
-f:顯示指定的"欄位"內容,預設的欄位區隔是跳格字元(TAB)
-s:當內容沒有符合的欄位區隔字元,該行內容不顯示,可與-f搭配使用
*** -b、-c 及 -f 的範圍指定方法是相同 ***
N
第 N 個 byte 或字元或欄位
N-
從第 N 個到行尾的 byte 或字元或欄位
N-M
從第 N 到 M 個之間的 byte 或字元或欄位
-M
從行的開頭到第 M 個 byte 或字元或欄位
--------------------------------------------------------------------------------
#split:切割檔案
參數:
-a:設定分割檔案後,存檔檔名的字尾長度(預設值為 2)
-b:指定分割檔案的位元數(SIZE)
-C:與 -b 選項相似,但會自動保持行的完整性。
-l:指定分割行數
--verbose:顯示指令的執行過程
--help:顯示程式用法資訊
--version:顯示程式本身的版本資訊
範例:
split -b 50m infile outfile
把檔案切成50m一個
-------------------------------------------------------------------------------
#head:輸出文件開頭部份的內容
參數:
-c:指定輸出開頭的 "N" 個字元
-n:指定輸出開頭的 "N" 行
-q:不輸出檔案名稱的訊息
-v:顯示檔案名稱的訊息
範例:
------------------------------------------------------------------------------
#iconv:字碼轉換
參數:
-f:來源的編碼
-t:目的(輸出)的編碼
--list:顯示指令支援的所有編碼一覽
-o file:將轉碼的輸出儲存到指定的檔案
範例:
iconv index.php -f big5 -t gb2312 -o index-gb.html
將 big5 編碼的index.php轉為gb2312編碼並將輸出結果存到index-gb.html
-----------------------------------------------------------------------------
#paste:文件的行合併
參數
-d:自訂區隔字元(預設值 TAB)
-s:串連檔案
範例:
cat -n aaa
1 title File_aaa
2 root akira
cat -n bbb
1 title File_bbb
2 farmer huang
# paste aaa bbb > ccc
cat -n ccc
1 title File_aaa title File_bbb
2 root akira farmer huang
# paste -s aaa bbb > ccc2
# cat -n ccc2
1 title File_aaa root akira
2 title File_bbb farmer huang
------------------------------------------------------------------------------
#rev,tac:反向列出行文
------------------------------------------------------------------------------
#nl:將每一列開頭加行號
參數
-b:加上Style,如下
a 包含空白行
t 不包含空白
n 不插入列編號
-----------------------------------------------------------------------------
#expand:將檔案中的tab改為空格
參數:
-t:設定一個tab改為幾個空格,最多八個
-i:只更換行的最前
----------------------------------------------------------------------------
#unexpand:將空格space換成 tab
----------------------------------------------------------------------------
#dd:將內容改為八進位呈現
----------------------------------------------------------------------------
#pr:print file 將格示編排後做標準輸出,以便列印
參數:
-d:每列插入一個空白
-w:設定每列最大字元
-h:設定檔頭title
-i:設定每頁列數
-o:設定左邊界,向右偏量
範例:
pr -l 100 -w 80 fileA
以每頁100列 每列80字格式編排 File
pr -o 3 fileA
以左邊界三個字元重排fileA
---------------------------------------------------------------------------
#wc
參數:
-c:顯示byte數
-l:顯示列數
-w:顯示字數
如不加參數為全顯示,格式如下
列數 字數 byte數
------------------------------------------------------------------------------
#sort:以ASCII碼排序
參數
-r:以ASCII相反排序
-u:對於相同的行,只保留一行
---------------------------------------------------------------------------
#uniq:簡查刪除文檔中重覆出現的行數
參數
-c:在每行前顯示重覆的次數
-----------------------------------------------------------------------------
#iconv:轉換中文編碼
範例:
iconv -f utf-8 -t big5 msn.log
utf-8轉成big5