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

awk格式处理求助:保留首列,将后续列转为指定格式

问题描述

输入文件内容:

a x g
b y h
c z i

期望输出:

a ["x"] ["g"]
b ["y"] ["h"]
c ["z"] ["i"]

我尝试了以下awk代码,但每个列都显示在新行中,无法得到预期输出:

awk '{print $1;for (i = 1; i <= NF; ++i) printf "[\""$i"\"]"" ";print "" }'
解决方案

你的代码有两个问题:一是print $1会直接输出第一列并换行,二是循环从i=1开始会重复处理第一列,导致格式混乱。

修正后的awk代码如下:

awk '{printf "%s", $1; for(i=2; i<=NF; i++) printf " [\"%s\"]", $i; print ""}'

代码说明:

  • printf "%s", $1:输出第一列,不自动换行,保证后续内容跟在同一行
  • for(i=2; i<=NF; i++):从第二列开始遍历,避免重复处理第一列
  • printf " [\"%s\"]", $i:给每个后续列添加前置空格,并包裹在[""]中,保持同一行输出
  • print "":每行处理完成后添加换行符,确保每行内容独立

运行这段代码即可得到你期望的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:49:51