用來截取某一個字段vim
語法:cut -d ‘分隔字符’ [-cf] n(這裏的n是數字)centos
[root@centos-01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
root:x
bin:x
[root@centos-01 ~]# cat /etc/passwd |head -2 |cut -c 1-4
root
bin:
sort用作排序。若是sort不加任何選項,則從首字符向後,依次按ASCII碼值進行比較,最後按升序輸出。ruby
語法:sort [-t 分隔符] [-kn1,n2] [-nru](這裏的n1 < n2)bash
[root@centos-01 ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
[root@centos-01 ~]# head /etc/passwd > 1.txt
[root@centos-01 ~]# sort 1.txt
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
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
[root@centos-01 ~]# sort -r 1.txt
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
用於統計文檔的行數、字符數、詞數,經常使用的選項爲:ssh
[root@centos-01 ~]# wc -l 1.txt
10 1.txt
[root@centos-01 ~]# wc -m 1.txt
385 1.txt
[root@centos-01 ~]# ls
1.txt anaconda-ks.cfg
[root@centos-01 ~]# vim 2.txt
[root@centos-01 ~]# wc -m 2.txt
10 2.txt
[root@centos-01 ~]# cat -A 2.txt
abcd$ ,;.?$
每行末尾的隱藏字符$
也算在字符統計中。post
[root@centos-01 ~]# wc -w 2.txt
2 2.txt
去重複的行,使用uniq的前提是須要先給文件排序,不然不是相鄰的兩行沒法去重。ui
[root@centos-01 ~]# vim 2.txt
[root@centos-01 ~]# cat 2.txt
abcd
,;.?
abcd
abcd
[root@centos-01 ~]# uniq 2.txt
abcd
,;.?
abcd
[root@centos-01 ~]# sort 2.txt
,;.?
abcd
abcd
abcd
[root@centos-01 ~]# sort 2.txt |uniq
,;.?
abcd
[root@centos-01 ~]# sort 2.txt |uniq -c
1 ,;.?
3 abcd
後跟文件名,相似於重定向「>」,可是比重定向多了一個功能,在把文件寫入後面所跟的文件中的同時,還顯示在屏幕上。spa
-a
:追加劇定向,相似於「>>」。不加「-a」選項,是覆蓋重定向,相似於「>」。[root@centos-01 ~]# ls
1.txt 2.txt anaconda-ks.cfg
[root@centos-01 ~]# sort 2.txt |uniq -c
1 ,;.?
3 abcd
[root@centos-01 ~]# sort 2.txt |uniq -c > a.txt
[root@centos-01 ~]# cat a.txt
1 ,;.?
3 abcd
[root@centos-01 ~]# sort 2.txt |uniq -c |tee a.txt
1 ,;.?
3 abcd
[root@centos-01 ~]# cat a.txt
1 ,;.?
3 abcd
[root@centos-01 ~]# sort 2.txt |uniq -c |tee -a a.txt
1 ,;.?
3 abcd
[root@centos-01 ~]# cat a.txt
1 ,;.?
3 abcd
1 ,;.?
3 abcd
替換字符,經常使用來處理文檔中出現的特殊符號,如DOS文檔中出現的^M符號。經常使用的選項有兩個:code
最經常使用的就是把小寫變大寫:tr '[a-z]' '[A-Z]'
排序
[root@centos-01 ~]# echo "centos" |tr '[cos]' '[COS]'
CentOS
[root@centos-01 ~]# echo "sdut" |tr '[a-z]' '[A-Z]'
SDUT
替換、刪除、去重複都是針對一個字符來說的,有必定侷限性。
切割文檔,經常使用選項:
[root@centos-01 ~]# cat a.txt
1 ,;.?
3 abcd
1 ,;.?
3 abcd
[root@centos-01 ~]#
[root@centos-01 ~]#
[root@centos-01 ~]# find /etc/ -type f -name "*conf" -exec cat {} >> a.txt \;
[root@centos-01 ~]# du -sh a.txt
240K a.txt
[root@centos-01 ~]# mkdir test
[root@centos-01 ~]# mv a.txt test/
[root@centos-01 ~]# cd test/
[root@centos-01 test]# ls
a. txt
[root@centos-01 test]# split -b 10000 a.txt
[root@centos-01 test]# ls
a.txt xab xad xaf xah xaj xal xan xap xar xat xav xax
xaa xac xae xag xai xak xam xao xaq xas xau xaw xay
[root@centos-01 test]# du -sb *
243445 a.txt
10000 xaa
10000 xab
10000 xac
10000 xad
10000 xae
10000 xaf
10000 xag
10000 xah
10000 xai
10000 xaj
10000 xak
10000 xal
10000 xam
10000 xan
10000 xao
10000 xap
10000 xaq
10000 xar
10000 xas
10000 xat
10000 xau
10000 xav
10000 xaw
10000 xax
3445 xay
若是split不指定目標文件名,則會以xaa xab…這樣的文件名來存取切割後的文件。
[root@centos-01 test]# rm -f x*
[root@centos-01 test]# ls
a.txt
[root@centos-01 test]# split -b 100k a.txt
[root@centos-01 test]# ls
a.txt xaa xab xac
[root@centos-01 test]# du -sh *
240K a.txt
100K xaa
100K xab
40K xac
[root@centos-01 test]# rm -f x*
[root@centos-01 test]# split -b 100k a.txt tmp.
[root@centos-01 test]# ls
a.txt tmp.aa tmp.ab tmp.ac
[root@centos-01 test]# rm -f tmp*
[root@centos-01 test]# split -l 2000 a.txt
[root@centos-01 test]# ls
a.txt xaa xab xac xad
[root@centos-01 test]# wc -l *
6085 a.txt
2000 xaa
2000 xab
2000 xac
85 xad
12170 總用量