使用awk
,我可以打印CSV中的任何列,例如,这将打印中的第10列file.csv
。
awk -F, '{ print $10 }' file.csv
如果我需要打印5-10列(包括逗号),我只会这样知道:
awk -F, '{ print $5","$6","$7","$8","$9","$10 }' file.csv
如果要打印很多列,此方法不太好。是否有用于在CSV中打印一系列列的更简单语法awk
?
在awk中执行此操作的标准方法是使用for循环:
awk -v s=5 -v e=10 'BEGIN{FS=OFS=","}{for (i=s; i<=e; ++i) printf "%s%s", $i, (i<e?OFS:ORS)}' file
但是,如果分隔符很简单(如您的示例中所示),则您可能更喜欢使用cut
:
cut -d, -f5-10 file
Perl值得一提(-a
用于启用自动拆分模式):
perl -F, -lane '$"=","; print "@F[4..9]"' file
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句