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