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

如何使用AWK命令打印CSV文件第1、3、9-12及30-35列

命令修改方案

你可以直接按照需求扩展原有awk的输出逻辑即可,以下是两种实现方式:

最简写死版(适合你当前固定需求)

如果你的CSV是逗号分隔的标准格式,先指定字段分隔符为,,如果是空格分隔直接删掉FS=","那一行即可:

grep -i introd *.csv | awk 'BEGIN {FS=","} {
    # 先输出固定的第1、3列
    printf "%s %s ", $1, $3
    # 输出9到12列
    for(i=9;i<=12;i++) printf "%s ", $i
    # 输出30到35列
    for(i=30;i<=35;i++) printf "%s ", $i
    # 换行结束当前行输出
    print ""
}'

如果你需要输出的列分隔符不是空格,把printf里的空格替换成你需要的分隔符(比如逗号,)即可。

灵活配置版(后续改需求不用改循环逻辑)

如果后续可能频繁调整要输出的列区间,可以用区间配置的方式,修改更方便:

grep -i introd *.csv | awk 'BEGIN {
    FS = ","
    # 所有要批量输出的列区间写在这里就行
    out_ranges["9-12"] = 1
    out_ranges["30-35"] = 1
}
{
    printf "%s %s ", $1, $3
    for(r in out_ranges) {
        split(r, rg, "-")
        for(i=rg[1];i<=rg[2];i++) printf "%s ", $i
    }
    print ""
}'

特殊场景提示

如果你的CSV字段内部包含逗号(比如带引号包裹的内容"姓名,昵称",年龄),普通awk按分隔符拆分字段会出错,这种情况建议用专门处理CSV的工具csvcut,写法更简单:

grep -i introd *.csv | csvcut -c 1,3,9-12,30-35

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:39:03