gpt4 book ai didi

awk - 打印前四列,然后打印每四列

转载 作者:行者123 更新时间:2023-12-03 03:39:17 25 4
gpt4 key购买 nike

我有一张大 table 。我想保留前四列,但之后只打印第四列。

我试过了

awk -v OFS="\t" '{
for(i=1;i<=NF;i++){
if(i<=4)
print $0
else if(i>4 && (i%4)==0)
print $i
}
}'

最佳答案

试试这个:

hzhang@dell-work ~ $ cat sample.csv 
1,2,3,4,5,6,7,8,9,10,11,12,13
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
1,2,3,4,5,6,7,8,9,10,11,12,13
hzhang@dell-work ~ $ cat test.awk
BEGIN{
FS=",";
OFS="\t"
}
{
str = "";
counter = 0;
for(i=1; i<=NF; i++){
if(i <= 3 || i % 4 == 0){
counter += 1
if(counter < 3 + NF/4 - 1){
str = str $i OFS
}else{
str = str $i
}
}
};
print str
}
hzhang@dell-work ~ $ awk -f test.awk sample.csv
1 2 3 4 8 12
1 2 3 4 8 12 16
1 2 3 4 8 12

我使用逗号作为字段分隔符,如果您的字段分隔符是空格,只需删除 BEGIN 子句中的 FS 即可。

关于awk - 打印前四列,然后打印每四列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29708164/

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