原文地址: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"|"