Linux基础学习之Shell编程——字符截取命令相关——printf、cut、awk、sed

本文详细介绍了Linux中用于字符截取的四个命令:cut、printf、awk和sed。cut命令主要用于提取文件中的特定列,awk则提供了更强大的文本处理能力,包括自定义分隔符和复杂匹配规则。printf作为标准输出工具,常与cut配合使用。sed则是一个流编辑器,能够进行行选取、替换、删除和新增等操作。在处理空格分隔符时,awk比cut更为灵活。文章还给出了多个示例演示了这些命令的实际运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、字符截取命令之cut命令

1、字符截取命令有哪些?

grep  cut    printf(严格来说不算)   awk   sed  命令

2、grep 是在文件当中提取符合条件的行

      cut  是在文件当中提取符合条件的列

3、cut命令:

[root@localhost ~]# cut 【选项】文件名

选项:

  -f  列号    :提取第几列

  -d  分隔符:按照指定分隔符分隔列

注意:测试文档如下

[root@localhost sh]# vim student.txt

ID      Name    gender  Mark
1       Liming  M       86
2       Sc      M       90
3       Gao     M       83
~                    

注意 空白不是空格,而是制表符

[root@localhost sh]# cut -f 2 student.txt 
Name
Liming
Sc
Gao
[root@localhost sh]# cut -f 2,3 student.txt 
Name	gender
Liming	M
Sc	M
Gao	M
[root@localhost sh]# 

示例2、提取/etc/passwd 文件中内容,用于练习-d选项

Gao	M
[root@localhost sh]# vim /etc/passwd

daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
[root@localhost sh]# cut -d ":" -f 1,3 /etc/passwd
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
uucp:10
operator:11
games:12
gopher:13
ftp:14
nobody:99
dbus:81
usbmuxd:113
rpc:32
rtkit:499
avahi-autoipd:170
vcsa:69
abrt:173
rpcuser:29
nfsnobody:65534
haldaemon:68
ntp:38
apache:48
saslauth:498
postfix:89
gdm:42
pulse:497
sshd:74
tcpdump:72
zhouxueli:500
sc:501
bimm:502
cangls:503
st:504
lamp:505
[root@localhost sh]# 

4、字符截取命令在编程中有什么作用呢?

如果想要批量添加一定量的用户,但是发现普通用户不合要求,想删除普通用户,

所以可以根据截取命令,把用户名提取出来,之后根据用户名删除,

所以利用cut命令将用户名批量提取,根据root取反,提取普通用户,

编写脚本,利用循环,把这些用户删除

等等类似这种情形可用

5、cut命令的局限[root@localhost ~]# df -h | cut -d " " -f 1,3

[root@localhost sh]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  7.8G  8.5G  48% /
tmpfs                 931M   76K  931M   1% /dev/shm
/dev/sda1             477M   41M  411M   9% /boot
/dev/sdb1             2.0G  3.1M  1.9G   1% /disk1
/dev/sdb5             2.0G  3.1M  1.9G   1% /disk5
/dev/sr0              1.1G  1.1G     0 100% /media/Ubuntu 14.04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值