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

Linux SORT工具:如何自定义EOR与EOF标识

Linux sort工具自定义记录结束符(EOR)与结束标记(EOF)

一、把记录结束符(EOR)改成\n\r

sort本身不支持直接指定多字符的记录分隔符,默认只认\n当记录结尾。如果要让sort把\n\r当成单条记录的结束,得先转一下数据格式,再交给sort处理:

  • 用awk先拆分记录,排序后再还原分隔符:
# 从data.txt读取数据,按\n\r拆分记录,排序后再给每条记录加上\n\r
awk -v RS='\n\r' '{print $0}' data.txt | sort | awk '{print $0 "\n\r"}'

原理:awk把记录分隔符(RS)设为\n\r,每条记录输出时用默认的\n分隔,让sort正常排序;排序完成后再用awk给每条记录补回\n\r作为结束符。

二、把结束标记设为"END"

sort没有直接识别字符串作为EOF的功能,所以得先把"END"之前的内容提取出来再排序:

  • 如果"END"是单独一行:
# 读取到"END"行就停止,把前面的内容传给sort
sed '/^END$/q' data.txt | sort
  • 如果"END"是行内的某个字符串(不是单独一行):
# 逐行检查,遇到包含"END"的行就退出,前面的内容交给sort
awk '{if(index($0,"END")>0) exit; print $0}' data.txt | sort

内容的提问来源于stack exchange,提问作者blackknight

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:33:19