這里阿銘列出了很多陌生的命令,這些命令在日常的文檔處理工作中非常實(shí)用,所以阿銘需要先簡(jiǎn)單介紹一下它們,如果你記不住,也沒(méi)有關(guān)系,以后用到的時(shí)候再進(jìn)一步了解即可。
1. 命令cut
cut命令用來(lái)截取某一個(gè)字段,其格式為cut -d '分隔字符' [-cf] n,這里的n是數(shù)字。該命令有如下幾個(gè)可用選項(xiàng)。
-d:后面跟分隔字符,分隔字符要用單引號(hào)括起來(lái)。
-c:后面接的是第幾個(gè)字符。
-f:后面接的是第幾個(gè)區(qū)塊。
cut命令的用法如下:
?
# cat /etc/passwd|cut -d ':' -f 1 |head -5 root bin daemon adm lp
?
通過(guò)上例可以看出,-d選項(xiàng)后面加冒號(hào)作為分隔字符,-f 1表示截取第一段,-f和1之間的空格可有可無(wú)。示例命令如下:
?
o i # head -n2 /etc/passwd|cut -c1 r b # head -n2 /etc/passwd|cut -c1-10 root0:0 bin1 # head -n2 /etc/passwd|cut -c5-10 0:0 x1:通過(guò)上例可以看出,-c選項(xiàng)后面可以是一個(gè)數(shù)字n,也可以是一個(gè)區(qū)間n1-n2,還可以是多個(gè)數(shù)字n1、n2和n3。示例命令如下:
# head -n2 /etc/passwd|cut -c1,3,10 ro0 bn:
?
2. 命令sort
sort命令用做排序,其格式為sort [-t 分隔符] [-kn1,n2] [-nru],這里n1和n2指的是數(shù)字,其他選項(xiàng)的含義如下。
-t:后面跟分隔字符,作用跟cut的-d選項(xiàng)一樣。
-n:表示使用純數(shù)字排序。
-r:表示反向排序。
-u:表示去重復(fù)。
-kn1,n2:表示由n1區(qū)間排序到n2區(qū)間,可以只寫-kn1,即對(duì)n1字段排序。
如果sort不加任何選項(xiàng),則從首字符向后依次按ASCII碼值進(jìn)行比較,最后將它們按升序輸出。示例命令如下:
# head -n5 /etc/passwd|sort adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0:0:root:/root:/bin/bash-t選項(xiàng)后面跟分隔符,-k選項(xiàng)后面跟單個(gè)數(shù)字表示對(duì)第幾個(gè)區(qū)域的字符串排序,-n選項(xiàng)則表示使用純數(shù)字排序。示例命令如下:
# head -n5 /etc/passwd |sort -t: -k3 -n root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
?
-k選項(xiàng)后面跟數(shù)字n1和n2表示對(duì)第n1和n2區(qū)域內(nèi)的字符串排序,-r選項(xiàng)則表示反向排序。示例命令如下:
# head -n5 /etc/passwd |sort -t: -k3,5 -r lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin root:x:0:0:root:/root:/bin/bash
?
這里的-k3,5表示對(duì)第3區(qū)域至第5區(qū)域間的字符串排序。
3. 命令wc
wc命令用于統(tǒng)計(jì)文檔的行數(shù)、字符數(shù)或詞數(shù)。該命令的常用選項(xiàng)有-l(統(tǒng)計(jì)行數(shù))、-m(統(tǒng)計(jì)字符數(shù))和-w(統(tǒng)計(jì)詞數(shù))。示例命令如下:
?
#?wc?/etc/passwd 45 103 2499 /etc/passwd #?wc?-l?/etc/passwd 45 /etc/passwd #?wc?-m?/etc/passwd 2499 /etc/passwd #?wc?-w?/etc/passwd 103 /etc/passwd
?
如果wc不跟任何選項(xiàng),直接跟文檔,則會(huì)把行數(shù)、詞數(shù)和字符數(shù)依次輸出。
4. 命令uniq
uniq命令用來(lái)刪除重復(fù)的行,該命令只有-c選項(xiàng)比較常用,它表示統(tǒng)計(jì)重復(fù)的行數(shù),并把行數(shù)寫在前面。我們先來(lái)編寫一個(gè)文件,示例命令如下:
# vim testb.txt //把下面的內(nèi)容寫入testb.txt并保存 111 222 111 333
?
使用uniq前,必須先給文件排序,否則不管用。示例命令如下:
?
# uniq testb.txt 111 222 111 333 # sort testb.txt |uniq 111 222 333 # sort testb.txt |uniq -c 2 111 1 222 1 333
?
5. 命令tee
tee命令后面跟文件名,其作用類似于重定向>,但它比重定向多一個(gè)功能,即把文件寫入后面所跟的文件時(shí),還顯示在屏幕上。該命令常用于管道符|后。示例命令如下:
# echo "aaaaaaaaaaaaaaaaaaaaaaaaaaa" |tee testb.txt aaaaaaaaaaaaaaaaaaaaaaaaaaa # cat testb.txt aaaaaaaaaaaaaaaaaaaaaaaaaaa
?
6. 命令tr
tr命令用于替換字符,常用來(lái)處理文檔中出現(xiàn)的特殊符號(hào),如DOS文檔中出現(xiàn)的符號(hào)^M。該命令常用的選項(xiàng)有以下兩個(gè)。
-d:表示刪除某個(gè)字符,后面跟要?jiǎng)h除的字符。
-s:表示刪除重復(fù)的字符。
tr命令常用于把小寫字母變成大寫字母,如tr '[a-z]' '[A-Z]'。示例命令如下:
?
# head -n2 /etc/passwd |tr '[a-z]' '[A-Z]' ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
?
tr命令還可以替換一個(gè)字符,示例命令如下:
?
# grep 'root' /etc/passwd |tr 'r' 'R' Root:x:0:0:Root:/Root:/bin/bash opeRatoR:x:11:0:opeRatoR:/Root:/sbin/nologin不過(guò)替換、刪除以及去重復(fù)等操作都是針對(duì)一個(gè)字符來(lái)講的,有一定的局限性。如果是針對(duì)一個(gè)字符串,就不能再使用了,所以你只需簡(jiǎn)單了解一下tr命令即可。以后,你還會(huì)學(xué)到更多可以實(shí)現(xiàn)字符串操作的工具。
?
7. 命令split
split命令用于切割文檔,常用的選項(xiàng)為-b和-l。
-b:表示依據(jù)大小來(lái)分割文檔,單位為byte,示例命令如下:
?
# mkdir split_dir # cd !$ cd split_dir # cp /etc/passwd ./ # split -b 500 passwd # ls passwd xaa xab xac xad xae如果split不指定目標(biāo)文件名,則會(huì)以xaa、xab...這樣的文件名來(lái)存取切割后的文件。當(dāng)然,我們也可以指定目標(biāo)文件名,如下所示:
# rm –f xa* # split -b 500 passwd 123 # ls 123aa 123ab 123ac 123ad 123ae passwd
?
-l:表示依據(jù)行數(shù)來(lái)分割文檔,示例命令如下:
?
# rm -f 123a* # split -l 10 passwd # wc -l * 45 passwd 10 xaa 10 xab 10 xac 10 xad 5 xae 90 total
?
評(píng)論
查看更多