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

使用sed/awk/sort按公司名称字母排序时,如何保留test.txt整行内容?

按公司名称排序并保留完整行内容的解决方案

我来帮你解决这个问题~你之前的命令之所以只输出公司名,是因为用awk只提取了$1(公司名部分),所以最后只能看到排序后的公司名。要保留完整行内容,我们需要让sort基于公司名来排序,但同时保留整行信息,这里有两个实用的方案:

方案1:直接用sort指定排序字段

假设你的test.txt中行的格式类似1. 公司名称(其他信息),可以先通过sed去掉开头的序号,再用sort以(为分隔符,按第一个字段(公司名称)排序,同时保留整行:

sed 's/^[0-9]*[.] //' test.txt | sort -t'(' -k1,1
  • sed 's/^[0-9]*[.] //':去掉每行开头的数字、点号和后面的空格,得到公司名称(其他信息)格式的行
  • sort -t'(' -k1,1:用(作为字段分隔符,仅按第一个字段(也就是公司名称)进行排序,排序后输出完整的行内容

方案2:用awk添加排序前缀后再处理

如果你的行格式有更多变化(比如公司名和(之间有空格),可以用awk先给每行加上公司名作为排序前缀,排序后再去掉前缀:

sed 's/^[0-9]*[.] //' test.txt | awk -F'(' '{print $1 ":::" $0}' | sort | awk -F':::' '{print $2}'
  • awk -F'(' '{print $1 ":::" $0}':用(分割行,把公司名($1)和整行内容用:::拼接(:::是一个不会出现在你的内容里的分隔符,可按需替换)
  • sort:按前缀的公司名称排序
  • awk -F':::' '{print $2}':去掉前面的公司名前缀,输出原始的完整行

这两个方案都能帮你得到按公司名称字母序排列的完整行内容~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:21:47