将特定列转换为CSV文件中的小写

时间:2012-11-26 05:56:05

标签: perl shell csv

我有一个CSV文件,我想将特定列转换为小写。在linux中这样做的有效方法是什么?

2 个答案:

答案 0 :(得分:4)

awk -F"," 'BEGIN{OFS=","} {$5 = tolower($5); print}' file

更改第5个字段。

还有-v OFS=",",但不是100%确定标准是多少;另外,,左右的引号可能会被遗漏,但为了一般性,我保留了它们;所以,作为变体:

awk -F, -v OFS=, '{$5 = tolower($5); print}' file

请注意,awk字段是从1开始的。 sarathi的回答在perl中做同样的事情,它基于0;确保选择正确的索引。

编辑:正如melpomene正确指出的那样,这两种情况仅适用于没有引号或转义的简单CSV。

答案 1 :(得分:0)

如果您想将colum3转换为小写,例如:

perl -F -lane '$F[2]=lc($F[2]);print "@F"' your_file