我有一个包含文本的文件,我只想从u'sometext'的所有实例中去掉前导u,这样它就离开了'sometext'。我还没有弄清楚如何让sed与u'匹配并替换为'
我认为sed命令有效:

echo ['a', u'update for microsoft office 2013 (kb4022166) 32-bit edition', 'unknown', 'null'] | sed "s/u'/'/g"

输出:
[a, uupdate for microsoft office 2013 (kb4022166) 32-bit edition, unknown, null]

我想要的是:
['a', 'update for microsoft office 2013 (kb4022166) 32-bit edition', 'unknown', 'null']

文件中的更多示例:
"[u'cpe:/o:microsoft:windows_7::sp1:x64-enterprise', u'cpe:/a:adobe:acrobat:11.0.19']"

我想要的是:
"['cpe:/o:microsoft:windows_7::sp1:x64-enterprise', 'cpe:/a:adobe:acrobat:11.0.19']"

最佳答案

您需要使用单词边界,用特殊字符\b表示,该字符紧跟在边界上要匹配的第一个字符之前

 $ echo "[u'a', u'hello']" | sed "s/\bu'/'/g"
 ['a', 'hello']

关于regex - 如何使用sed将u'sometext'替换为'sometext',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51789248/

10-09 17:59