Coreutils - Linux核心工具筆記
2007-12-15 20:35:41
分類: LINUX
【Coreutils】cat -----除了顯示文件內(nèi)容、here方式創(chuàng)建、追加文件以外,還有其它功能 # cat -b foo 為文本加行號,不計(jì)算空行 # cat -n foo 為文本加行號,計(jì)算空行 # cat -s foo 將文本中的多空行變?yōu)閱慰招?br># cat foo | col -x 把所有 【Coreutils】nl -----為文本加行號 # nl foo (不計(jì)算空行) # nl -ba foo (計(jì)算空行) # nl -v 2 -i 5 foo (不計(jì)算空行,從2開始,5步一進(jìn)) # nl -b p'^\#' foo (不計(jì)算空行,為所有以#開頭的行加行號) # nl -w3 -nrz -ba foo (計(jì)算空行,行號為三位數(shù)字,前面補(bǔ)0) 【Coreutils】expand -----把 # expand foo 把所有 # expand -i foo 把開頭的 【Coreutils】unexpand -----把空格轉(zhuǎn)換成 # unexpand foo 把開頭的空格轉(zhuǎn)換成 # unexpand -a foo 把所有的空格轉(zhuǎn)換成 # unexpand -a -t 1 foo 把所有的空格轉(zhuǎn)換成 【Coreutils】fmt -----間距調(diào)整 # fmt -u foo 統(tǒng)一文本中文字的間距 【Coreutils】uniq ----- 重復(fù)行與非重復(fù)行 如果直接加文件作參數(shù),那么在輸出中會看到所有相鄰的重復(fù)行都會變成一行,而所有的非重復(fù)行則不變。 如果-u,那么所有相鄰的重復(fù)行都不會輸出,只會輸出非重復(fù)行。 如果-d,那么所有的非重復(fù)行都不會輸出,只會以不重復(fù)的方式輸出重復(fù)行。 如果-dc,將會在上面的基礎(chǔ)上顯示重復(fù)的次數(shù)。 因?yàn)閡niq的功能只是針對“相鄰的重復(fù)行”而言,因此,我們會經(jīng)常把它放在用sort排序后的管道后面,以便在忽略“相鄰”這一前提的情況下對文本中的所有的重復(fù)行進(jìn)行處理,比如: # xargs -n1 < foo | sort | uniq -dc 【Coreutils】join -----合并兩個文件的某些內(nèi)容,條件是在每行的行首必須有相同的行標(biāo)志。 第一個文件file1: A Ubuntu B Fedora C Mint D openSUSE 第二個文件file2: A best B excellent C very good D good 第三個文件file2: A ^-^ B @-@ C <- -> D * * # join file1 file2 合并兩個文件 A Ubuntu best B Fedora excellent C Mint very good D openSUSE good # join file1 file2 | join - file3 合并三個文件 A Ubuntu best ^-^ B Fedora excellent @-@ C Mint very good <- -> D openSUSE good * * 合并第一個文件的第二列與第二個文件的第三列: # join -o 1.2 -o 2.3 file1 file2 【Coreutils】split -----文件切分 -l指定單個輸出文件的行數(shù),-b指定單個輸出文件的字節(jié)數(shù),以一首mp3為例 # split -b2m 20082271913320032.mp3 part. 指定了文件大小為2m,最后一個參數(shù)是輸出文件的前綴名稱(默認(rèn)是x),這樣切分以后,可以看到這首mp3被切成4份 # ls 20082271913320032.mp3 part.aa part.ab part.ac part.ad 切分的文件可以用cat還原。 【Coreutils】stty ----- 終端設(shè)置 # stty -a 查看當(dāng)前鍵設(shè)置 # stty erase ^? 鍵設(shè)置 # stty column 80 寬設(shè)置 # stty sane 恢復(fù)默認(rèn)值 【Coreutils】du ----- 估算文件占用空間 # du -h 各分區(qū)總體占用情況,使用頻率相當(dāng)高的一個命令 # du -cks * | sort -rn | head -10 當(dāng)前目錄下占用空間最大的頭10位文件或文件夾。 【Coreutils】dd ----- 文件的拷貝與轉(zhuǎn)換 if=輸入文件,out=輸出文件, 讀寫塊bs大小默認(rèn)值為512,可以用ibs=和obs=來改變這個默認(rèn)值,bs=同時改變兩樣, skip=從磁盤起始處跳躍多少個ibs到達(dá)文件的開端,seek=跳躍多少個obs ... , “組合與“bs=1 skip=1 00“組合的效果是一樣的,count=從文件起始處跳躍多少個bs到達(dá)文件的末尾。 【Coreutils】expr ----- 簡單的計(jì)算、字符串處理 # expr 2 + 3 數(shù)字與運(yùn)算符中間要有空格才能打出計(jì)算結(jié)果 5 # expr 3 \* 7 乘法符號要用轉(zhuǎn)義符 21 # a=21 可以處理變量 # expr $a / 3 7 # expr substr "shanghai 2010" 6 8 字串截取 hai 2010 # expr length "shanghai 2010" 字串長度 13 # expr index "shanghai 2010" 1 在字串中找到某字符第一次出現(xiàn)的位置 12 |
|