gpt4 book ai didi

linux - 使用 AWK 将文件的第一列拆分为多列

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:51 27 4
gpt4 key购买 nike

文件看起来像这样,但有数百万行(TAB 分隔):

1_number_column_ranking_+   100 200 Target "Hello" 

我想用 _ 拆分第一列,这样它就变成了:

1 number column ranking + 100 200 Target "Hello"

这是我一直在尝试的代码:

awk -F"\t" '{n=split($1,a,"_");for (i=1;i<=n;i++) print $1"\t"a[i]}' 

但这并不是我所需要的。
感谢您提供任何帮助(关于该主题的其他主题对我没有帮助)。

最佳答案

无需拆分,只需替换即可:

awk 'BEGIN{FS=OFS="\t"}{gsub("_","\t",$1)}1'

例如:

$ cat file
1_number_column_ranking_+ 100 200 Target "Hello"

$ awk 'BEGIN{FS=OFS="\t"}{gsub("_","\t",$1)}1' file
1 number column ranking + 100 200 Target "Hello"

gsub 将替换所有出现的地方,当没有给出第 3 个参数时,它将替换为 $0。
最后一个 1{print} 的快捷方式。 (始终为 true,隐含为 {print}。)

关于linux - 使用 AWK 将文件的第一列拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54202017/

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