1、cut命令:截取列
cut 【选项】文件名
选项
-f 列号:提取第几列
-d 分隔符:按照指定分隔符分割列
1.1.1 练习:-f
第一步:创建一个文件,里面写一个表
[root@catyuan ~]# vim student
id name age sex ##写这个表时,中间的间隔使用tab,不能使用空格
1 张三 12 男
2 李四 15 男
3 小雪 16 女
4 小敏 18 女
第二步:练习:截取第一列、第二列
[root@catyuan ~]# cut -f 2 student
name
张三
李四
小雪
小敏
[root@catyuan ~]# cut -f 1 student
id
1
2
3
4
[root@catyuan ~]# cut -f 1,3 student
id age
1 12
2 15
3 16
4 18
1.1.2 练习:-f
[root@catyuan ~]# vim student
1:张三:12:男
2:小雪:12:女
[root@catyuan ~]# cut -f 3 -d ":" student
12
12
[root@catyuan ~]# cut -f 4 -d ":" student
男
女
[root@catyuan ~]# cut -f 1,2,3 -d ":" student
1:张三:12
2:小雪:12
1.2 cut命令的局限
不能截取没有分割符或者tab缩进的文件
练习:
[root@catyuan ~]# df -h | cut -f 1 ##不会只截取第一列,会输出全部的内容
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 20G 3.8G 16G 20% /
devtmpfs 898M 0 898M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 197M 152M 45M 78% /boot
tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs 183M 32K 183M 1% /run/user/0
2、printf命令
printf '输出类型输出格式' 输出内容
输出类型:
%ns:输出字符串。n是数字只带输出几个字符
%ni:输出整数。n是数字只带输出几个数字
%m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%5.2f代表共输出5位数,其中2位是小数,3位是整数
2.1 练习
123456[root@catyuan ~]# printf 1 2 3
1[root@catyuan ~]#
[root@catyuan ~]# printf %s 1 2 3
123[root@catyuan ~]#
[root@catyuan ~]# printf '%s %s %s' 1 2 3 4 5 6 #使用printf要指出换行符,空格,都要自己指出
1 2 34 5 6[root@catyuan ~]#
[root@catyuan ~]# printf '%s\t %s\t %s\n' 1 2 3 4 5 6
1 2 3
4 5 6
##不调整输出格式
[root@catyuan ~]# printf '%s' $(cat student)
1:张三:12:男2:小雪:12:女[root@catyuan ~]#
##调整输出格式
[root@catyuan ~]# printf '%s\n' $(cat student)
1:张三:12:男
2:小雪:12:女
2.2 awk中的 print和 printf
print:会在每个输出之后自动加入一个换行符(linux中默认没有print命令)
printf:标准格式输出命令,并不会自动加入换行符。如果需要换行,需手工加入。