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

Linux下如何提取txt文件每行第一个和第二个下划线之间的文本

解决方法

方法1:直接处理转换后的outputfile.txt(awk方案,最简便)

awk天然适合按分隔符提取字段,直接指定下划线为分隔符,提取第二个字段即可:

awk -F '_' '{print $2}' outputfile.txt > result.txt

参数说明:

  • -F '_' 指定字段分隔符为下划线
  • $2 指代每行被下划线分割后的第二个字段,正好是第一个和第二个下划线之间的目标文本
  • 输出的result.txt就是你要的预期结果。

方法2:sed实现方案

如果你想用sed完成,可以用正则捕获组提取目标内容:

sed 's/^[^_]*_\([^_]*\)_.*/\1/' outputfile.txt > result.txt

正则逻辑:
匹配行开头到第一个下划线的所有内容,再捕获第一个到第二个下划线之间的内容,最后丢弃第二个下划线之后的所有内容,只输出捕获的目标片段。


优化方案:一步处理原始文件(无需先生成outputfile.txt)

可以把「替换第一个横杠为下划线」和「提取目标字段」两步合并,直接处理原始inputfile.txt:

awk -F '[-_]' '{print $2}' inputfile.txt > result.txt

这里直接把分隔符设为横杠-或下划线_,原始行第一个分隔符是横杠,分割后的第二个字段就是你要的目标文本,省去了提前替换的步骤。


内容的提问来源于stack exchange,提问作者MagíBC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:54:03