Bash AWK,SED根据列名显示列
我正在编写一个shell脚本,其中包含很多SED和AWK命令。现在,我被困在一个无法继续前进的地方 例如:- 如果我运行下面的命令。它打印第一列Bash AWK,SED根据列名显示列,bash,shell,awk,sed,Bash,Shell,Awk,Sed,我正在编写一个shell脚本,其中包含很多SED和AWK命令。现在,我被困在一个无法继续前进的地方 例如:- 如果我运行下面的命令。它打印第一列 awk 'OFS="\t" {print $1;}' finename.txt 但是,是否有一种方法可以使用列名而不是列号打印特定列。我猜没有直截了当的方法,但应该有一些技巧来做到这一点 分离的示例数据选项卡 itemNumber Price Mango Apple Bannana 112201 purchased
awk 'OFS="\t" {print $1;}' finename.txt
但是,是否有一种方法可以使用列名而不是列号打印特定列。我猜没有直截了当的方法,但应该有一些技巧来做到这一点
分离的示例数据选项卡
itemNumber Price Mango Apple Bannana
112201 purchased need-to-plan purchased
112202 55 yet-to-buy yet-to-buy purchased
112202 67 need-to-plan purchased purchased
112203 456 need-to-plan need-to-plan need-to-plan
112203 33 need-to-plan yet-to-buy need-to-plan
112204 456 need-to-plan yet-to-buy need-to-plan
112204 yet-to-buy purchased need-to-plan
112205 77 yet-to-buy purchased need-to-plan
112205 99 yet-to-buy purchased yet-to-buy
112206 0 yet-to-buy purchased yet-to-buy
像这样的?
awk-vcol=Price'NR==1{colnum=-1;fori=1;i类似的东西?
awk-vcol=Price'NR==1{colnum=-1;fori=1;i谢谢@Max Murphy
个人需要awk-f'',所以需要空格和| column-t
全文:
awk-F'-vcols=pkts,bytes,source,destination'NR==2{n=splitcols,cs,,;forc=1;c谢谢@Max Murphy
个人需要awk-f'',所以需要空格和| column-t
全文:
awk-F'-vcols=pkts,bytes,source,destination'NR==2{n=splitcols,cs,,;forc=1;cYou可能想添加-F'\t',因为数据似乎有一些空列,所以默认的空格分隔符将不会保留列索引。是的-F'\t'将这样做。像往常一样,您有很多选项。以制表符分隔的输入:BEGIN{IFS=\t}输出:BEGIN OFS=\t}并且都以{FS=\t}开头。但是-F是最短的,所以应该赢:-@MaxMurphy-太棒了。这正是我想要的。@meuh-谢谢你添加了它。我正要问:-@MaxMurphy-你知道如何用列名打印多个列吗?你可能想添加-F'\t',因为数据似乎有一些空列,所以默认的空格分隔符r将不保留列索引。是-F'\t'将这样做。像往常一样,您有很多选项。以制表符分隔的输入:BEGIN{IFS=\t}输出:BEGIN{OFS=\t}和BEGIN{FS=\t}.但是-F是最短的,所以应该赢:-@MaxMurphy-太棒了。这正是我想要的。@meuh-谢谢你加上它。我正要问:-@MaxMurphy-知道如何用列名打印多个列吗?