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

如何为cat与awk的输出结果新增自定义文本或数学序列列

实现方案

方案1:插入自定义字符串列表作为新增列

你可以提前准备好和输出行数一一对应的自定义标签列表,通过两种方式实现拼接:

方式1:直接在awk中定义列表

for f in $(find . -name "E_total_conv.txt" | sort); do tail -1 $f | awk '{print $2}' ; done | awk '
BEGIN {
    # 按顺序填写你需要的自定义标签,数量和输出行数保持一致
    x_tag[1] = "tag1"
    x_tag[2] = "tag2"
    x_tag[3] = "tag3"
    x_tag[4] = "tag4"
    x_tag[5] = "tag5"
    x_tag[6] = "tag6"
}
{
    print x_tag[NR] "\t" $0
}'

方式2:提前存储标签到文件后用paste拼接

先把自定义标签按每行一个的格式存入x_labels.txt,再执行:

paste x_labels.txt <(for f in $(find . -name "E_total_conv.txt" | sort); do tail -1 $f | awk '{print $2}' ; done)

方案2:插入规则化数学序列作为新增列

方式1:awk内部生成序列

可以灵活设置起始值、步长,适配各种规则序列需求:

示例1:步长0.2的0到1序列(匹配你给出的期望输出)

for f in $(find . -name "E_total_conv.txt" | sort); do tail -1 $f | awk '{print $2}' ; done | awk '
BEGIN {
    x = 0       # 序列起始值
    step = 0.2  # 序列步长
}
{
    printf "%.1f\t%s\n", x, $0
    x += step
}'

示例2:1到10范围内的偶数序列

for f in $(find . -name "E_total_conv.txt" | sort); do tail -1 $f | awk '{print $2}' ; done | awk '
BEGIN {
    x = 2       # 第一个符合要求的序列值
    step = 2    # 序列步长
}
{
    print x "\t" $0
    x += step
}'

方式2:用seq生成序列后拼接

# 示例:步长0.2的0到1序列
paste <(seq 0 0.2 1) <(for f in $(find . -name "E_total_conv.txt" | sort); do tail -1 $f | awk '{print $2}' ; done)

注意:给find命令追加sort是为了保证读取文件的顺序稳定,避免x标签和数值对应错位,你可以根据自己的文件排序规则调整sort参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:15:00