【发布时间】:2022-01-16 08:14:49
【问题描述】:
如果这似乎是一个简单的问题,我提前道歉。但是,我是 bash 命令和脚本的初学者,所以我希望你们都明白为什么我无法自己解决这个问题。
我想要实现的是将 csv 文件的一个字段中的值更改为大写,然后使用转换后的字段和所有其他字段重新保存 csv 文件,每个字段都保留其索引。
例如,我有这个 csv:
1,Jun 4 2021,car,4856
2,Jul 31 2021,car,4154
3,Aug 14 2021,bus,4070
4,Aug 2 2021,car,4095
我想将保存车辆类型的第三个字段转换为大写 - CAR、BUS 等,然后使用转换后的字段重新保存 csv 文件。
我曾尝试使用 'tr' 命令:
cut -d"," -f4 data.csv | tr '[:lower:]' '[:upper:]'
这会获取字段并进行转换。但是如何粘贴和替换 csv 文件中的列? 它不起作用,因为字段参数无法传递给 tr 命令。
【问题讨论】:
-
您说要转换第三个字段,但您也说
cut -d"," -f4 data.csv(注意 - 选择 4th 字段)有效,请解释或修复。另外,澄清each retaining their index的含义。 -
@Ed Morton,那是我的错字。
-f4应该是-f3。道歉。我要做的是将输入 csv 文件中名为 data.csv 的第三个字段转换为大写,然后用另一个名称重新保存 csv 文件。我希望这能更清楚 -
没问题,请edit 解决您的问题并解释
each retaining their index的含义或删除该声明(如果它没有意义)。