You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AWK将匹配特定模式的行移至文件末尾

用AWK实现将指定行移至文件末尾

需求说明

需要将文件中所有以37M1|5|开头的行移动到文件末尾,其余行保持原有顺序。

输入示例

37M1|5|189|
37M1|5|190|
37M1|2|150|
ABC|AAA|BBBB
ABC1|AAB|BBBC
37M1|5|191|
37M1|3|111|
BBC1|AAB|BFBC
BBC2|AAA|BFBC
37M1|5|192|

期望输出

37M1|2|150|
ABC|AAA|BBBB
ABC1|AAB|BBBC
37M1|3|111|
BBC1|AAB|BFBC
BBC2|AAA|BFBC
37M1|5|192|
37M1|5|189|
37M1|5|190|
37M1|5|191|

AWK实现命令

awk '/^37M1\|5\|/{a[++n]=$0; next} {print} END{for(i=1;i<=n;i++) print a[i]}' input.txt

命令解释

  • /^37M1\|5\|/:匹配以37M1|5|开头的行(|是正则元字符,需用\转义)
  • {a[++n]=$0; next}:将匹配到的行存入数组a,跳过后续操作直接处理下一行
  • {print}:对不匹配的行直接输出,保留原有顺序
  • END{for(i=1;i<=n;i++) print a[i]}:处理完所有行后,遍历数组输出所有暂存的目标行

如果需要直接修改原文件,可结合临时文件实现:

awk '/^37M1\|5\|/{a[++n]=$0; next} {print} END{for(i=1;i<=n;i++) print a[i]}' input.txt > tmp.txt && mv tmp.txt input.txt

内容的提问来源于stack exchange,提问作者Abou Ilyès

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:56:13