怎么实现.csv 文件中的内容修改 用shell 脚本
时间: 2024-03-11 16:50:47 浏览: 118
可以使用 `sed` 命令实现 .csv 文件中的内容修改。
假设要修改的 .csv 文件路径为 `/path/to/myfile.csv`,其中需要替换的单元格为第 3 行第 4 列(即 C3),需要替换的内容为 `old_value`,替换成 `new_value`,可以使用如下的 shell 脚本:
```
#!/bin/bash
# 文件路径
csv_file="/path/to/myfile.csv"
# 行列号
row=3
col=4
# 替换的内容
old_value="old_value"
new_value="new_value"
# 使用 sed 命令替换内容
sed -i "${row}s/\([^,]*,\)\{${col}\}\([^,]*\)/\1${new_value}/" "$csv_file"
```
其中,`${row}` 和 `${col}` 分别表示需要替换的行和列。`${old_value}` 和 `${new_value}` 分别表示需要替换成的旧值和新值。
`sed` 命令中的表达式 `${row}s/\([^,]*,\)\{${col}\}\([^,]*\)/\1${new_value}/` 的意思是,将第 `${row}` 行、第 `${col}` 列的单元格替换成 `${new_value}`。具体来说,这个表达式会匹配第 `${row}` 行的每一个单元格,然后将第 `${col}` 列所在的那个单元格的值替换成 `${new_value}`。
例如,如果要将 `/path/to/myfile.csv` 中的第 3 行第 4 列的值从 `old_value` 修改为 `new_value`,可以使用以下命令:
```
./modify_csv.sh
```
其中,`modify_csv.sh` 就是上面的 shell 脚本文件。修改后,`/path/to/myfile.csv` 中的内容会被更新。
阅读全文