AWK tips 之移动文件中的指定行

本文介绍了如何利用AWK将文件中特定行移动到另一位置的技巧。通过遍历文件两次,首先找到要移动的记录并存储,然后在合适的位置重新输出。示例展示了如何将SaleID为295的记录移到0039之后,并提供了一种直接通过行号进行移动的简化方法。此外,还提到了将AWK命令封装为函数的可能性。
摘要由CSDN通过智能技术生成

原文地址:https://www.lujun9972.win/blog/2020/05/15/awk-tips-之移动文件中的指定行/index.html

https://www.datafix.com.au/BASHing/2020-05-13.html 上看到的 AWK 技巧,记录一下。

假设有这个一个文件:

SaleID|Class|Item|Count|UnitP|TotalP
146|fish|BG fillets|3|15.00|45.00
2785|fruit|banana|1|0.45|0.45
0039|fruit|banana|1|0.45|0.45
119|meat|liver paste|1|2.10|2.10
6253|veg|carrot bunch|2|4.90|9.80
8847|fish|tin tuna|4|1.50|6.00
3776|veg|pak choy|2|2.50|5.00
295|fruit|apple|6|0.94|5.64
534|fish|tin tuna|1|1.50|1.50
1221|meat|pork slices|8|4.20|33.60 

现在想把 SaleID 为 295 的这条记录移动到 0039 后面,用 AWK 如何实现?

这里的技巧在于对同一个文件遍历两次,第一次找出待移动的记录并记录到某个变量中,第二次在恰当的位置输出它。最后的解决方法为:

awk -F
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值