Linux Shell編程(6) - 字符操做命令:cut、printf、awk、sed、sort、wc

1、cut 命令

cut命令用來顯示行中的指定部分

1. 語法

cut [選項] 文件名

2. 選項

-f 列號:第幾列提取
-d 分隔符:按照指定分隔符分隔列,若不設置,默認爲製表符(Tab鍵)

3. 應用

處理以製表符分隔的成績單

  • report.md
[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100
  • 查看 report.md 中的第二列
[root/tmp]# cut -f 2 report.md
Name
Zhang
Li
Wang
  • 查看 report.md 中的第二列和第四列
[root/tmp]# cut -f 2,4 report.md
Name    Score
Zhang   99
Li      68
Wang    100

處理以 : 分隔的 /etc/passwd 文件

  • /etc/passwd
[root/tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
veewee:x:1000:1000::/home/veewee:/bin/bash
vagrant:x:1001:1001::/home/vagrant:/bin/bash
...省略n行...
memcached:x:996:995:Memcached daemon:/run/memcached:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
  • 查看 /etc/passwd 中的第一列和第七列
[root/tmp]# cut -f 1,7 -d ":" /etc/passwd
root:/bin/bash
bin:/sbin/nologin
sync:/bin/sync
mail:/sbin/nologin
nobody:/sbin/nologin
sshd:/sbin/nologin
veewee:/bin/bash
vagrant:/bin/bash
...省略n行...
memcached:/sbin/nologin
apache:/sbin/nologin
  • 查看全部使用 /bin/bash 登陸的普通用戶
[root/tmp]# grep '/bin/bash' /etc/passwd | cut -f 1 -d ":" /etc/passwd | grep -v root
veewee:/bin/bash
vagrant:/bin/bash

4. cut 命令的侷限性

cut 命令只能夠分析分隔符清晰,格式很是工整的文件,相似 df 這類的輸出內容徹底無能爲力。
[root/tmp]# df -h | cut -f 5
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root  8.4G  1.8G  6.7G   21% /
devtmpfs                 490M     0  490M    0% /dev
tmpfs                    497M     0  497M    0% /dev/shm
tmpfs                    497M  6.7M  491M    2% /run
tmpfs                    497M     0  497M    0% /sys/fs/cgroup
/dev/sda1                497M  133M  365M   27% /boot
vagrant                   62G   58G  4.4G   93% /vagrant
tmpfs                    100M     0  100M    0% /run/user/1001
[root/tmp]# df -h | cut -f 5 -d ' '

1.8G

2、printf 命令

printf命令格式化並輸出結果到標準輸出。
printf命令並不會自動加入換行符,若是須要換行,須要手工加入換行符。

1. 語法

printf '[輸出類型][輸出格式]' [內容]

2. 經常使用輸出類型

%ns:輸出字符串。n是數字,指代輸出幾個字符。
%nd:輸出整數。n是數字,指代輸出幾個數字。

3. 經常使用輸出格式

\n:換行
\r:回車
\t:水平製表符(Tab鍵)

4. 應用

printf 和 echo

[root/tmp]# echo 1 2 3 4 5 6
1 2 3 4 5 6
[root/tmp]# printf 1 2 3 4 5 6
1[root/tmp]#

printf 格式化輸出

[root/tmp]# printf '%s' 1 2 3 4 5 6
123456[root/tmp]# printf '%s\n' 1 2 3 4 5 6
1
2
3
4
5
6
[root/tmp]# printf '%s%s\n' 1 2 3 4 5 6
12
34
56
[root/tmp]# printf '%s%s %s\n' 1 2 3 4 5 6
12 3
45 6
[root/tmp]# printf '%s%s %s%s\n' 1 2 3 4 5 6
12 34
56

格式化輸出 report.md

  • report.md
[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100
  • printf 不支持使用管道符
[root/tmp]# cat report.md | printf
printf: 用法:printf [-v var] 格式 [參數]
  • 格式化輸出 report.md
[root/tmp]# printf '%s\n' $(cat report.md)
ID
Name
Gender
Score
1
Zhang
F
99
2
Li
M
68
3
Wang
M
100
[root/tmp]# printf '%s\t%s\t%s\t%s\n' $(cat report.md)
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100

3、awk 命令

1. 語法

awk '條件1{動做1} 條件2{動做2} ...' 文件名

條件

通常使用關係表達式做爲條件
x>10
x<10
x>=10
x<=10
x==10

動做

格式化輸出
流程控制語句

2. awk命令的輸出

awk 命令的輸出中支持 print 和 printf 命令
  • printf:標準格式輸出命令,並不會自動加入換行符,若是須要換行,須要手工加入換行符。
  • print:會在 printf 輸出的基礎上加入換行符。(print 只能在 awk 命令中使用,Linux默認並無 print 命令)。

格式化輸出 report.md

  • report.md
[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100
  • 輸出 report.md 的第二列和第四列
[root/tmp]# awk '{print $2 "\t" $4}' report.md
Name    Score
Zhang   99
Li      68
Wang    100

[root/tmp]# cut -f 2,4 report.md
Name    Score
Zhang   99
Li      68
Wang    100

格式化輸出 df 命令的結果

  • df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root  8.4G  1.8G  6.7G   21% /
devtmpfs                 490M     0  490M    0% /dev
tmpfs                    497M     0  497M    0% /dev/shm
tmpfs                    497M  6.7M  491M    2% /run
tmpfs                    497M     0  497M    0% /sys/fs/cgroup
/dev/sda1                497M  133M  365M   27% /boot
vagrant                   62G   58G  4.4G   93% /vagrant
tmpfs                    100M     0  100M    0% /run/user/1001
  • 只輸出df命令的第五列
[root/tmp]# df -h | awk '{print $5}'
已用%
21%
0%
0%
2%
0%
27%
93%
0%
  • 只輸出文件系統爲 '/dev/mapper/centos-root' 的第五列
[root/tmp]# df -h | grep '/dev/mapper/centos-root' | awk '{print $5}'
21%
  • 去掉後面的 '%',只保留數字
[root/tmp]# df -h | grep '/dev/mapper/centos-root' | awk '{print $5}' | cut -d '%' -f 1
21

3. BEGIN 和 END 語句塊

BEGIN語句塊在awk開始從輸入流中讀取行以前被執行,這是一個可選的語句塊,好比變量初始化、打印輸出表格的表頭等語句一般能夠寫在BEGIN語句塊中。

END語句塊在awk從輸入流中讀取完全部的行以後即被執行,好比打印全部行的分析結果這類信息彙總都是在END語句塊中完成,它也是一個可選語句塊。正則表達式

  • BEGIN 和 END 語句塊用法
[root/tmp]# df -h | awk 'BEGIN{print "I am begining"}END{print "I am end"}{print $5}'
I am begining
已用%
21%
0%
0%
2%
0%
27%
93%
0%
I am end

4. FS 分隔符

設置FS分隔符的方法

  1. awk -F '[分隔符]' '條件1{動做1} 條件2{動做2} ...' 文件名
  2. awk 'BEGIN{FS="[分隔符]"} 條件1{動做1} 條件2{動做2} ...' 文件名

格式化輸出以 : 分隔的 /etc/passwd 文件內容

  • /etc/passwd
[root/tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
veewee:x:1000:1000::/home/veewee:/bin/bash
vagrant:x:1001:1001::/home/vagrant:/bin/bash
...省略n行...
memcached:x:996:995:Memcached daemon:/run/memcached:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
  • 格式化輸出 /etc/passwd 中的第一列和第七列
[root/tmp]# cat /etc/passwd | awk -F ':' '{print $1 "\t\t" $7}'
root            /bin/bash
bin             /sbin/nologin
sync            /bin/sync
mail            /sbin/nologin
nobody          /sbin/nologin
sshd            /sbin/nologin
veewee          /bin/bash
vagrant         /bin/bash
...省略n行...
memcached               /sbin/nologin
apache          /sbin/nologin
[root/tmp]# cat /etc/passwd | awk 'BEGIN{FS=":"} {print $1 "\t\t" $7}'
root            /bin/bash
bin             /sbin/nologin
sync            /bin/sync
mail            /sbin/nologin
nobody          /sbin/nologin
sshd            /sbin/nologin
veewee          /bin/bash
vagrant         /bin/bash
...省略n行...
memcached               /sbin/nologin
apache          /sbin/nologin

5. 關係表達式

通常使用關係表達式做爲條件
x>10
x<10
x>=10
x<=10
x==10

解析 report.md

  • report.md
[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100
  • 輸出大於80分的人的名字
[root/tmp]# cat report.md | grep -v ID | awk '$4 > 80 {print $2}'
Zhang
Wang
  • 輸出小於80分的人的名字
[root/tmp]# cat report.md | grep -v ID | awk '$4 < 80 {print $2}'
Li
  • 輸出大於等於99分的人的名字
[root/tmp]# cat report.md | grep -v ID | awk '$4 >= 99 {print $2}'
Zhang
Wang
  • 輸出小於等於99分的人的名字
[root/tmp]# cat report.md | grep -v ID | awk '$4 <= 99 {print $2}'
Zhang
Li
  • 輸出100分的人的名字
[root/tmp]# cat report.md | grep -v ID | awk '$4 == 100 {print $2}'
Wang

4、sed 命令

sed 名令是一種幾乎包括在全部Unix平臺(包括Linux)的輕量級流編輯器。
sed 命令主要用來對數據進行選取、替換、刪除、新增。

1. 語法

sed [選項] '[動做]' [文件名]

2. 選項

-n:通常sed命令會輸出全部數據,若是加入此選項,則只會輸出通過sed命令處理的行。
-e:容許對輸入數據應用多條sed命令編輯。
-i:通常sed命令只會將編輯結果輸出到屏幕,若是加入此選項,則會直接修改讀取數據的文件。

3. 動做

p:打印,輸出指定的行。
i:插入,在當前行前插入一行或多行。
a:追加,在當前行後添加一行或多行。
d:刪除,刪除指定的行。
c:行替換,用c後面的字符串替換原數據行。
s:字符串替換,用一個字符串替換另一個字符串。格式爲 [行範圍]s/[舊字符串]/[新字符串]/g (與vim編輯器的替換格式相似)。

4. 查看文件指定行的內容

  • 查看 report.md 的第二行數據,若是不加 -n 的話默認是輸出文件全部數據
[root/tmp]# sed '2p' report.md
ID      Name    Gender  Score
1       Zhang   F       99
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100
  • 查看 report.md 的第二行數據
[root/tmp]# sed -n '2p' report.md
1       Zhang   F       99
  • 查看 report.md 的第一行到第三行數據
[root/tmp]# sed -n '1,3p' report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68

5. 在指定行插入內容

  • 在第一行插入 'Begin',可是不修改文件自己
[root/tmp]# sed '1i Begin' report.md
Begin
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100

[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100

6. 在指定行追加內容

  • 在第一行插入 'End',可是不修改文件自己
[root/tmp]# sed '1a End' report.md
ID      Name    Gender  Score
End
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100

7. 刪除文件指定行的內容

  • 刪除第二行到第四行的數據,可是不修改文件自己
[root/tmp]# sed '2,4d' report.md
ID      Name    Gender  Score

[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100

8. 替換指定行的整行內容

  • 將第一行替換爲 'Hello World',可是不修改文件自己
[root/tmp]# sed '1c Hello World' report.md
Hello World
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100

[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100
  • 當替換的行沒有數據時,沒法替換成功
[root/tmp]# sed '5c Hello World' report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100

9. 替換指定行的指定字符串

命令格式

sed [-i] '[行範圍]s/[舊字符串]/[新字符串]/g' 文件名
-i:加 -i 只會修改源文件;不加的話只會將編輯結果輸出到屏幕,不會修改源文件。
結尾的 g 爲全局替換,若不加,則只會替換每一行第一個符合條件的字符串
[舊字符串] 能夠應用正則表達式

行範圍格式

  • 若是不寫行範圍,則默認替換整個文件的內容
  • n 表示只替換第 n 行的內容
  • m,n 表示替換 從第 m 行到第 n 行的內容
  • n,$ 表示替換 從第 n 行一直到文件結尾的內容

應用

  • passwd 文件是從 /etc/passwd 文件截取的部份內容
[root/tmp]# cat -n passwd
     1  rootxroot/root/bin/bash
     2  binxbin/bin/sbin/nologin
     3  syncxsync/sbin/bin/sync
     4  mailxmail/var/spool/mail/sbin/nologin
     5  nobodyxNobody//sbin/nologin
     6  sshdxSSH/var/empty/sshd/sbin/nologin
     7  veeweex/home/veewee/bin/bash
     8  vagrantx/home/vagrant/bin/bash
     9  memcachedxMemcached/run/memcached/sbin/nologin
    10  apachexApache/usr/share/httpd/sbin/nologin
  • 把文章中全部的 數字: 替換爲 '*',直接修改源文件
[root/tmp]# sed -i 's/[0-9]\{1,\}:/\*/g' passwd
[root/tmp]# cat -n passwd
     1  root:x:**root:/root:/bin/bash
     2  bin:x:**bin:/bin:/sbin/nologin
     3  sync:x:**sync:/sbin:/bin/sync
     4  mail:x:**mail:/var/spool/mail:/sbin/nologin
     5  nobody:x:**Nobody:/:/sbin/nologin
     6  sshd:x:**SSH:/var/empty/sshd:/sbin/nologin
     7  veewee:x:**:/home/veewee:/bin/bash
     8  vagrant:x:**:/home/vagrant:/bin/bash
     9  memcached:x:**Memcached:/run/memcached:/sbin/nologin
    10  apache:x:**Apache:/usr/share/httpd:/sbin/nologin
  • 把第九行的 'memcached' 替換爲 'mem'
[root/tmp]# sed -i '9s/emcached/em/g' passwd
[root/tmp]# cat -n passwd
     1  root:x:**root:/root:/bin/bash
     2  bin:x:**bin:/bin:/sbin/nologin
     3  sync:x:**sync:/sbin:/bin/sync
     4  mail:x:**mail:/var/spool/mail:/sbin/nologin
     5  nobody:x:**Nobody:/:/sbin/nologin
     6  sshd:x:**SSH:/var/empty/sshd:/sbin/nologin
     7  veewee:x:**:/home/veewee:/bin/bash
     8  vagrant:x:**:/home/vagrant:/bin/bash
     9  mem:x:**Mem:/run/mem:/sbin/nologin
    10  apache:x:**Apache:/usr/share/httpd:/sbin/nologin
  • 把第五行的 'Nobody' 替換爲 'no',把第十行的 'Apache' 替換爲 'apa'

方法一:多條命令以分號分隔apache

[root/tmp]# sed '5s/Nobody/no/g;10s/Apache/apa/g'  passwd
root:x:**root:/root:/bin/bash
bin:x:**bin:/bin:/sbin/nologin
sync:x:**sync:/sbin:/bin/sync
mail:x:**mail:/var/spool/mail:/sbin/nologin
nobody:x:**no:/:/sbin/nologin
sshd:x:**SSH:/var/empty/sshd:/sbin/nologin
veewee:x:**:/home/veewee:/bin/bash
vagrant:x:**:/home/vagrant:/bin/bash
mem:x:**Mem:/run/mem:/sbin/nologin
apache:x:**apa:/usr/share/httpd:/sbin/nologin

方法二:使用 -e 容許對輸入數據應用多條sed命令編輯vim

[root/tmp]# sed -i -e '5s/Nobody/no/g' -e '10s/Apache/apa/g'  passwd

[root/tmp]# cat -n passwd
     1  root:x:**root:/root:/bin/bash
     2  bin:x:**bin:/bin:/sbin/nologin
     3  sync:x:**sync:/sbin:/bin/sync
     4  mail:x:**mail:/var/spool/mail:/sbin/nologin
     5  nobody:x:**no:/:/sbin/nologin
     6  sshd:x:**SSH:/var/empty/sshd:/sbin/nologin
     7  veewee:x:**:/home/veewee:/bin/bash
     8  vagrant:x:**:/home/vagrant:/bin/bash
     9  mem:x:**Mem:/run/mem:/sbin/nologin
    10  apache:x:**apa:/usr/share/httpd:/sbin/nologin
  • 把文件中全部的 : 替換爲製表符(\t
[root/tmp]# sed -i 's/:/\t/g' passwd

[root/tmp]# cat -n passwd
     1  root    x       **root  /root   /bin/bash
     2  bin     x       **bin   /bin    /sbin/nologin
     3  sync    x       **sync  /sbin   /bin/sync
     4  mail    x       **mail  /var/spool/mail /sbin/nologin
     5  nobody  x       **no    /       /sbin/nologin
     6  sshd    x       **SSH   /var/empty/sshd /sbin/nologin
     7  veewee  x       **      /home/veewee    /bin/bash
     8  vagrant x       **      /home/vagrant   /bin/bash
     9  mem     x       **Mem   /run/mem        /sbin/nologin
    10  apache  x       **apa   /usr/share/httpd        /sbin/nologin
  • 把第五行一直到結尾的 'x' 替換爲 'w'
[root/tmp]# sed -i '5,$s/x/w/g' passwd

[root/tmp]# cat -n passwd
     1  root    x       **root  /root   /bin/bash
     2  bin     x       **bin   /bin    /sbin/nologin
     3  sync    x       **sync  /sbin   /bin/sync
     4  mail    x       **mail  /var/spool/mail /sbin/nologin
     5  nobody  w       **no    /       /sbin/nologin
     6  sshd    w       **SSH   /var/empty/sshd /sbin/nologin
     7  veewee  w       **      /home/veewee    /bin/bash
     8  vagrant w       **      /home/vagrant   /bin/bash
     9  mem     w       **Mem   /run/mem        /sbin/nologin
    10  apache  w       **apa   /usr/share/httpd        /sbin/nologin

5、sort 命令

將數據進行排序,並將排序結果標準輸出。

1. 語法

sort [選項] [文件名]

2. 選項

-n:以數值型進行排序,默認是使用字符串型排序
-r:反向排序
-f:忽略大小寫
-t:執行分隔符,默認的分隔符是製表符
-k n[,m]:按照指定的字段範圍排序。從第n字段開始,第m字段結束(默認到行尾)

3. 應用

對 'passwd' 文件內容進行排序

[root/tmp]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
sshd:x:74:74:SSH:/var/empty/sshd:/sbin/nologin
veewee:x:1000:1000::/home/veewee:/bin/bash
vagrant:x:1001:1001::/home/vagrant:/bin/bash
memcached:x:996:995:Memcached:/run/memcached:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
  • 正向排序
[root/tmp]# sort passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
memcached:x:996:995:Memcached:/run/memcached:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
sshd:x:74:74:SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
vagrant:x:1001:1001::/home/vagrant:/bin/bash
veewee:x:1000:1000::/home/veewee:/bin/bash
  • 反向排序
[root/tmp]# sort -r passwd
veewee:x:1000:1000::/home/veewee:/bin/bash
vagrant:x:1001:1001::/home/vagrant:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
sshd:x:74:74:SSH:/var/empty/sshd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
nobody:x:99:99:Nobody:/:/sbin/nologin
memcached:x:996:995:Memcached:/run/memcached:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

按照指定行排序

  • 指定分隔符是 ":",用第三個字段排序
[root/tmp]# sort -t ":" -k 3,3 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
veewee:x:1000:1000::/home/veewee:/bin/bash
vagrant:x:1001:1001::/home/vagrant:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
sshd:x:74:74:SSH:/var/empty/sshd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
memcached:x:996:995:Memcached:/run/memcached:/sbin/nologin
  • 有上面結果可知,sort 默認是按照字符串排序,若想按照數字類型排序,則須要添加 -n 選項
[root/tmp]# sort -n -t ":" -k 3,3 passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
sshd:x:74:74:SSH:/var/empty/sshd:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
memcached:x:996:995:Memcached:/run/memcached:/sbin/nologin
veewee:x:1000:1000::/home/veewee:/bin/bash
vagrant:x:1001:1001::/home/vagrant:/bin/bash

展現當前目錄下全部文件和目錄的大小,並按照從大到小的順序排列

[root/var]# du -s * | sort -nr
130440  lib
57584   cache
49800   tmp
7500    log
12      spool
8       db
0       var
0       run
0       opt
0       mail
0       lock
0       local

6、wc 命令

統計文件的行數、單詞數和字符數

1. 語法

wc [選項] 文件名

2. 選項

-l:只統計行數
-w:只統計單詞數
-m:只統計字符數

3. 應用

  • report.md
[root/tmp]# cat report.md
ID      Name    Gender  Score
1       Zhang   F       99
2       Li      M       68
3       Wang    M       100
  • 統計 report.md 的行數、單詞數和字符數
[root/tmp]# wc report.md
 4 16 57 report.md
  • 只統計行數
[root/tmp]# wc -l report.md
4 report.md
相關文章
相關標籤/搜索