首页 > 解决方案 > 如何用逗号替换文本 [Linux on Windows]

问题描述

我们从客户那里收到这些自动发送的电子邮件,格式如下:

VP##0-X1-#####-#[Revision #:Document title]
VP##0-X2-#####-#[Revision #:Document title]
VP##0-X3-#####-#[Revision #:Document title]

我想做的事:

这样我就可以将其转换为 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。

标签: regexlinuxsedwindows-subsystem-for-linux

解决方案


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.

推荐阅读