使用awk命令忽略表头失效:表头行被置空问题求助
解决awk截取列时表头被置空的问题
我懂你的困扰——用awk按|分割取第2列时,表头行因为没有对应的分割字段,结果输出了空内容,这确实挺闹心的。给你两个实用的解决方案,按需选择就行:
方案1:直接跳过表头行
如果你的输出不需要保留表头,只需要从第二行开始处理数据,直接用NR>1判断跳过第一行即可:
awk -F '|' 'NR>1 {print $2}' input > output
(小提示:awk本身可以直接读取文件,没必要用cat做管道,这样写更简洁高效)
方案2:保留表头原样输出
如果需要保留表头,只对数据行做截取,那就单独处理第一行(表头),直接输出原内容,剩下的行再执行截取逻辑:
awk -F '|' 'NR==1 {print; next} {print $2}' input > output
这里NR==1 {print; next}的逻辑是:如果是第一行,直接打印整行内容,然后跳过后续逻辑处理下一行;其他行则执行print $2截取第2列。
这样就能完美解决表头被置空的问题啦~
内容的提问来源于stack exchange,提问作者Pablita
相关产品推荐
相关产品推荐

