shell字符截取之cut、printf

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:标准格式输出命令,并不会自动加入换行符。如果需要换行,需手工加入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值