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

标签 perl shell csv

我有一个 CSV 文件,我想将特定列转换为小写。在 linux 中执行此操作的有效方法是什么?

最佳答案

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。

关于perl - 将特定列转换为 CSV 文件中的小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559389/

相关文章:

mysql - perl - 在数据库中发送多个请求

regex - 使用正则表达式从 CSV 中删除多余的引号字符

python - 如何从 CSV 文件中查找最早和最新日期 [Python]

php - 使用 fputcsv 连接列

perl - 'global symbol requires explicit package name'的解释

使用 Net::OpenSSH 将 Perl 文件传输到远程服务器

linux - Perl 无法在@INC 中定位模块

linux - Bash 函数局部数组变量在调用位置不可访问

bash - 使用awk计算时间差

linux - 使用 find 命令查找、压缩和删除文件时出错