shell之cut ---sed---awk--sort

本文详细介绍了Linux Shell中的四个常用命令:cut用于按指定分隔符提取文件列,sed是一个流编辑器,常用于行内容的增删改;awk则能按指定分隔符处理文件内容,而sort则用于对文件内容进行排序。通过实例演示了这四个命令的具体用法,包括字段提取、文本替换、行过滤和文件排序等操作,是提升Shell脚本处理能力的重要工具。
摘要由CSDN通过智能技术生成

shell三剑客

1、cut 此命令不改变源文件内容,只是将需要的打印到控制台

在文件中负责剪切数据用。cut命令从文件的每一行剪切字节、字符和字段,并将这些字节、字符和字段输出
1)用法
cut 参数 filename 默认分隔符是制表符

cut -d 分隔符 -f 列数 file
2)参数
-f 列行提取第几列
-d 分隔符,按照指定分隔符分割列

###########示例
##空格为分隔符,切出2,3列
cut -d ’ ’ -f 2,3 cut.txt

##选取系统PATH变量值,从第二个冒号后所有的路径
[root@wanghaha shell_study]# echo $PATH|cut -d : -f 3- ## 3- 表示第3个之后所有的
/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

##切取IP
[root@wanghaha shell_study]# ifconfig ens33|grep 'inet ’ |cut -d ’ ’ -f 10
192.168.29.111

2、sed

sed是一个流编辑器,一次处理一行内容,处理时,把当前的行存储在临时缓冲区,称其为模式空间,
接着用sed命令处理缓冲区的内容,处理后缓冲区内容送往控制台,接着处理下一行。文件内容不改变,
除非使用重定向存储输出
1)用法
sed 参数 ‘command’ filename

2)参数
-e 直接在指令模式进行sed的动作编辑
-i 加这个参数,会改变源文件内容
3)命令功能
a 新增,a的后面可以接字符串,在下一行出现
d 删除
s 查找并替换

##示例—注意,此处4个例子都没有改变源文件
1>在文件cut.txt第2行下一行增加wanghaha
sed “2a wanghaha” cut.txt
2>删除cut.txt包含wanghaha的行
sed “/wanghaha/d” cut.txt
3>替换文件cut.txt中wanghaha为linshi
sed “s/wanghaha/linshi/g” cut.txt
4>删除文件的第2行,并且替换文件cut.txt中wanghaha为linshi
sed -e “2d” -e “s/wanghaha/linshi/g” cut.txt

3、awk

文件逐行读入,默认以空格为分隔符每行切片,切开的部分再做处理

1)参数
-F 指定分隔符
-v 赋值一个用户定义变量

示例
1>passwd中以root开头所有行,并输出第7列
awk -F: ‘/^root/{print $7}’ passwd
2>passwd中以root开头所有行,输出1和7列,逗号隔开
awk -F: ‘/^root/{print $1","$7}’ passwd
3>只显示passwd第1和7列,逗号隔开,且在所有行前加user,shell在最后行添加"wanghaha,ceshi"
awk -F: ‘BEGIN{print “user,shell”}{print $1","$7}END{print “wanghaha,ceshi”}’ passwd
4>将passwd文件中用户id增加数值1并输出
awk -F : -v i=1 ‘{print $3+i }’ passwd ##此处定义了i
5>计算文件第二列数值和
cat file |awk -F ’ ’ ‘{sum+=$2}END{print sum}’
2)awk内置变量
FILENAME 文件名
NR 已读记录数 行号
NF 浏览记录的域的个数(切割后,列的个数)

#示例
awk -F : ‘{print FILENAME “,” NR “,” NF }’ passwd

2>查询passwd文件中空行所在的行号
awk ‘/^$/{print NR}’ passwd

4、sort

将文件进行排序,并将结果标准输出
1)参数
-n 依照数值大小排序
-r 以相反顺序排序
-t 设置排序时所用分隔符号
-k 指定需要排序的列
-u 去重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值