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

如何使用awk在txt文件开头插入编号1到2059的FID列?

实现方案

基础命令(制表符分隔)

将命令中input.txt替换为你的实际文件名,处理后的结果会保存到output.txt:

awk 'NR == 1 {print "FID\t" $0} NR > 1 {print (NR - 1) "\t" $0}' input.txt > output.txt

命令逻辑说明

  • NR是awk内置的行号变量,代表当前正在处理的行的序号
  • 第一行(NR==1)属于表头行,直接在原行内容前拼接FID和制表符后输出
  • 第二行及以后属于数据行,输出当前行号-1作为FID值(第二行对应编号1,最后一行对应编号=文件总行数-1,正好匹配你要求的1到2059的编号范围),拼接制表符和原行内容后输出

对齐优化版本

如果需要和你示例中的空格对齐效果一致,可以使用格式化输出的版本,调整占位宽度即可匹配原有列的对齐格式:

# %-4s 代表左对齐占4个字符宽度,可根据实际需要调整数值
awk 'NR == 1 {printf "%-4s%s\n", "FID", $0} NR > 1 {printf "%-4d%s\n", NR - 1, $0}' input.txt > output.txt

直接修改原文件

如果你使用的是GNU awk(绝大多数Linux发行版默认自带),可以直接加参数修改原文件,不需要额外生成输出文件:

gawk -i inplace 'NR == 1 {printf "%-4s%s\n", "FID", $0} NR > 1 {printf "%-4d%s\n", NR - 1, $0}' input.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:09:02