gpt4 book ai didi

bash - 如何在 AWK 中一次删除多个列和字段分隔符?

转载 作者:行者123 更新时间:2023-11-29 09:03:18 24 4
gpt4 key购买 nike

我有一个包含数千列的大文件。我想在 Bash 中使用 AWK 一次删除一些特定的列和字段分隔符。

我可以用这个 oneliner 一次删除一列(第 3 列及其相应的字段分隔符将被删除):

awk -vkf=3 -vFS="\t" -vOFS="\t" '{for(i=kf; i<NF;i++){ $i=$(i+1);}; NF--; print}' < Big_File

但是,我想一次删除多个列...有人可以帮我解决这个问题吗?

最佳答案

您可以像这样将要从 shell 中删除的列列表传递给 awk:

awk -vkf="3,5,11" ...

然后在 awk 程序中将其解析为数组:

split(kf,kf_array,",")

然后遍历所有列并测试每个特定列是否在 kf_array 中并可能跳过它

另一种可能性是多次调用您的 oneliner :-)

关于bash - 如何在 AWK 中一次删除多个列和字段分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361876/

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