gpt4 book ai didi

shell - 删除第一列,然后在 awk 中保留剩余的行不变

转载 作者:行者123 更新时间:2023-12-04 13:33:02 25 4
gpt4 key购买 nike

我正在尝试使用 awk 删除文本文件中的前三个字段。删除前三个字段很容易。但是该行的其余部分被 awk 弄乱了:分隔符从制表符更改为空格

这是我尝试过的:

head pivot.threeb.tsv | awk 'BEGIN {IFS="\t"} {$1=$2=$3=""; print }' 

前三列已正确删除。问题是输出最终以 $4 $5 $6 等列之间的制表符转换为空格。

更新:另一个被标记为重复的问题是在这个问题之后创建的:查看日期。

最佳答案

首先正如 ED 评论的那样,你必须使用 FS作为 awk 中的字段分隔符。tab变成 space在您的输出中,因为您没有定义 OFS .

awk 'BEGIN{FS=OFS="\t"}{$1=$2=$3="";print}' file

这将删除前 3 个字段,并使其余文本“保持不变”(您将看到前 3 个选项卡)。也在输出 <tab>会被保留。
awk 'BEGIN{FS=OFS="\t"}{print $4,$5,$6}' file

将输出没有前导空格/制表符。但是如果您有 500 列,则必须循环执行,或者使用 sub功能或考虑其他工具,例如切割。

关于shell - 删除第一列,然后在 awk 中保留剩余的行不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16400819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com