【发布时间】:2018-06-08 14:26:54
【问题描述】:
我正在尝试在 bash 中创建一个简单的 CSV 编辑器,
我挣扎着移除一条线。用户传入
的ID
要删除的行(每一行都用一个 ID 定义为第一列)。
这是一个示例文件结构:
ID,Name,Surname
0,Mark,Twain
1,Cristopher,Jones
因此,将 id 保存为变量并将文件名保存在另一个变量中(比如它的 file.csv),我尝试使用以下行将其从 bash 中删除:
read -p "Pass the object's ID: " idtoremove
fname=file.csv
sed -i -e "'/^$idtoremove*,/d'" $fname
但是,这对文件没有影响。这条线有什么问题?
另外,如何用变量中的字符串替换以给定 ID 开头的行?这是我将不得不面对的另一个问题,但我不知道如何解决这个问题。
【问题讨论】:
-
您为什么在
sed命令周围同时使用双引号和单引号?这不会导致sed失败并显示错误消息吗? -
*的目的是什么?
标签: regex bash csv parsing sed