awk使用笔记

本文介绍了一种利用awk命令处理文本文件中特定列的方法。通过示例演示了如何逐步替换第3和第4列的数据,并提供了完整的命令流程。

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

awk使用笔记

 

        今天一同事需要将一个文件的第31列和第32列的数字行替换为86。因为文件很大,因此用手工来改显然不显示,因此得求助于脚本工具。虽然我对这些脚本也不是很精通,但既然答应帮这个忙,就现学现用,完成了这个功能,记录如下。

        为了方便记录我将该文件简化一下成下面的格式,文件名为test

12345 67 89  10

12345 67 89  10

12345 67 89  10

12345 67 89  10

12345 67 89  10

12345 67 89  10

12345 67 89  10

12345 67 89  10

12345 67 89  10

12345 67 89  10

需求可以简化为将3列和第4列替换为86.

        如何实现呢?最先我一直去寻找直接替换列的操作,发现找了 很久都未找到,后来转换一下思路。实现如下:

第一步:awk '{print $1}' test

上面的命令是先把第一个字段列取出来,执行结果如下:

12345

12345

12345

12345

12345

12345

12345

12345

12345

12345

第二步:通过使用substr函数

awk '{print substr($1, 1,2) 86 substr($1, 5)}' test

执行结果如下:第三列和第四列已经被替换为86了。

12865

12865

12865

12865

12865

12865

12865

12865

12865

12865

第三步:将后面的字段加上。

awk '{print substr($1, 1,2) 86 substr($1, 5) " " $2 " " $3 " " $4}' test

执行结果如下:

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

12865 67 89 10

 

成功完成上述需求的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gobitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值