重新格式化段落(fmt)
fmt:适用于shell脚本内处理数据流时需要完成重新格式化,
或者在一个缺乏重新格式化命令但提供了shell转义的编辑器的情况下
常用选项:
-s:仅切割较长的行,不会将较短行合并
-w n:设置输出行宽度为n个字符
实例1:重新格式化20个字典单词
[gz_fieldyang@test ~]$ sed -n -e 9991,10010p /usr/share/dict/words |fmt
algometrically algometry Algomian Algomic Algona Algonac Algonkian
algonkian Algonkin Algonkins Algonquian algonquian Algonquians algonquians
Algonquin algonquin Algonquins algonquins algophagous algophilia
实例2:重新将10个单词格式化为宽度30内的短的行
[gz_fieldyang@test ~]$ sed -n -e 9995,10004p /usr/share/dict/words |fmt -w 30
Algona Algonac Algonkian
algonkian Algonkin Algonkins
Algonquian algonquian
Algonquians algonquians
[gz_fieldyang@test ~]$
注意:如果系统里没有/usr/share/dict/words,
那可能是在/usr/dict/words或者/usr/share/lib/dict/words
实例3:仅重新格式化长的行为10字符内的短的行
[gz_fieldyang@test ~]$ fmt -s -w 10 << END_OF_DA
> on
> seven
> eight
> night ten
> END_OF_DA
on
three
four
five six
seven
eight
night ten
计算行数、字数以及字符数(wc)
wc:默认输出的是一行报告,包括行数,字数以及字节数
常用选项:
-c:计算字节数
-l:计算行数
-w:计算字数
实例1:输出报告
[gz_fieldyang@test ~]$ echo This is a test of the emergency broadcast system|wc
1 9 49
[gz_fieldyang@test ~]$
实例2: 计算两个文件内的数据
[gz_fieldyang@test ~]$ wc /etc/passwd /etc/group
80 101 3824 /etc/passwd
92 92 1418 /etc/group
172 193 5242 total
实例3:选项测试
[gz_fieldyang@test ~]$ echo Testing on
27
[gz_fieldyang@ test ~]$ echo Testing on
1
[gz_fieldyang@ test ~]$ echo Testing on
5
[gz_fieldyang@ test ~]$