regex - 如何用逗号替换文本 [Linux on Windows]
问题描述
我们从客户那里收到这些自动发送的电子邮件,格式如下:
VP##0-X1-#####-#[Revision #:Document title]
VP##0-X2-#####-#[Revision #:Document title]
VP##0-X3-#####-#[Revision #:Document title]
我想做的事:
[Revision
用逗号替换:
用逗号替换- 删除
]
这样我就可以将其转换为 CSV,然后使用一些 excel 魔术来填写我们的跟踪表。
我尝试使用sed
这种通用格式:
sed -i 's,[Revision ,\,,g' <FILE>
但我不知道如何在这种情况下使用逗号。
这就是我最终想要得到的:
VP##0-X1-#####-#,#,Document title
VP##0-X2-#####-#,#,Document title
VP##0-X3-#####-#,#,ocument title
任何和所有的见解都是值得赞赏的。
我在 Windows 上使用 Ubuntu。
解决方案
sed 's/\[Revision /,/;s/:/,/;s/]//' inputfile
VP##0-X1-#####-#, #,Document title
VP##0-X2-#####-#, #,Document title
VP##0-X3-#####-#, #,Document title
无需通过使用back-referencing
或使用多个sed
命令来进行繁重的工作。您可以从单个命令中发出多个替换命令sed
:
句法:
sed 's/a/A/' file
sed 's/b/B/' file
sed 's/c/C/' file
可以组合成一个命令:
sed 's/a/A/;s/b/B/;s/c/C/' file #note the semicolon separating multiple replace operations.
推荐阅读
- javascript - Firefox 不会对对象数组进行排序,但 Chrome 和 Opera 会
- c++ - C++ Excel COM 自动化 - Workbook.SaveAs - 未找到成员
- php - Drupal Redis 模块未连接到 PHP-Redis
- entity-framework - EF Core 的 IndexAnnotation
- php - 使用两个 foreach 循环优化 PHP 代码
- jquery - 单击时为输入框创建空数据属性
- python - Python OpenCV - 检测手
- r - 在 ggplot2 中绘制数据框的列表
- python-3.x - Google Colaboratory:导入数据,超出堆栈大小?
- async-await - 将 Async/Await 与 Knex 迁移一起使用