将字符更改为小写

将字符更改为小写

我正在尝试将 .csv 文件第 11 列中的所有值都改为小写。我知道我可以使用“tr AZ az”,但如何确保它在我想要的文件中有效并且仅在第 11 列有效。

答案1

这取决于你的意思“.csv 文件”

在一般情况下(引用的 CSV 字段可能包含嵌入的分隔符,如"foo,bar",baz),您将需要使用可以正确解析该字符的工具,例如 Perl / Python / Ruby 模块之一 - 或 Miller。

例如:

$ cat file.csv
ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,ELEVEN,TWELVE

然后

$ mlr --csv --implicit-csv-header --headerless-csv-output put '$11 = tolower($11)' file.csv
ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,eleven,TWELVE

为了简单的逗号分隔的字段,您可以使用 Awk 甚至 Sed:

$ awk -F, 'BEGIN{OFS=FS} {$11 = tolower($11)} {print}' file.csv
ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,eleven,TWELVE

$ sed -E 's/([^,]+)/\L\1/11' file.csv
ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,eleven,TWELVE

相关内容