这是我正在解析的 CSV 文件中的行 pf 数据的示例。
"Monday, July 3, 2023 at 9:12:34 PM GMT+0:00","Answer 1","Answer 2","Answer 3"
我正在尝试删除“, 2023 at 9:12:34 PM GMT+0:00”部分,所以它看起来像这样:
"Monday, July 3","Answer 1","Answer 2","Answer 3"
CSV 文件中每一行的时间戳数据都将是不同的值,因此我不能简单地对其进行硬编码。
当我尝试此命令时,文件没有任何反应。我不知道为什么,
sed -i 's/, 2023[","]/","/g' example.csv
我感觉我忽略了一些简单的事情。
答案1
[","]
匹配一个单身的"
与、 或,
、 或匹配的字符"
。
您可能想要匹配顺序不是 的字符"
,并将其替换为空。所以(总是不-i
先测试)
sed -i 's/, 2023[^"]*//' example.csv
不过,您可能需要考虑使用能够理解 CSV 格式的工具 - 例如,磨坊主
mlr --csv -N --quote-all put '$1 = sub($1,", 2023.*", "")' example.csv
答案2
使用sed
$ sed -i.bak 's/,[^,]*"/"/' input_file
"Monday, July 3","Answer 1","Answer 2","Answer 3"