首页 > 解决方案 > 如何使用 awk 在最后一个字段之前将字段添加到文本文件中?

问题描述

我有以下空格分隔的文本文件:

ra dec type
197.574288 -0.673779 coadd
201.236362 -1.007902 coadd
191.573312 5.039784 coadd

使用“ra”“dec”和“type”作为文件的标题。我想使用 awk 命令在最后一个字段之前添加一个具有常量值“i”的字段,并在最后一个字段之后添加一个具有常量值“pdr”的字段,所以它看起来像这样:

ra dec i type pdr
197.574288 -0.673779 i coadd pdr
201.236362 -1.007902 i coadd pdr
191.573312 5.039784 i coadd pdr

到目前为止,我已经尝试了许多不同的命令,例如

awk '{printf("i %s pdr2_wide\n",$3,$5)}' psffile.txt > psf50.txt
awk '{printf($1,$2,$3,"i %s pdr2_wide\n",$4,$5)}' psffile.txt > psf50.txt
awk -F '\ ' -v OFS='\ ' '{ $(NF-1) = i; print }' psffile.txt > psf50.txt <br />

编辑:当我输入命令"awk '{ print $1,$2,"i",$3,"pdr" }' input"它给了我一个奇怪的格式输出:

ra dec i type pdr
197.574288 -0.673779 i coadd
 pdr
201.236362 -1.007902 i coadd
 pdr
191.573312 5.039784 i coadd
 pdr

有没有办法来解决这个问题?

标签: awk

解决方案


awk '{ print $1,$2,"i",$3,"pdr" }' input

输出:

ra dec i type pdr
197.574288 -0.673779 i coadd pdr
201.236362 -1.007902 i coadd pdr
191.573312 5.039784 i coadd pdr

推荐阅读