SED-如何将''和,添加到字符串的每个字符

我一直在尝试向字符串列表中添加一些特殊字符,但我坚持使用 sed,看看是否有人有任何想法:

[user@user]$ more file.txt
STRING#!-@


[user@user]$ cat file.txt | sed -r 's/(.{1})/1'''', /g;s/,$//'
S'', T'', R'', I'', N'', G'', #'', !'', -'', @'',

我需要两个 ' ' 之间的字符和每个字符 'S' 后的逗号,正确的输出应该是这样的:'S'、'T'、'R'、'I'、'N'、' G', '#', '!', '-', '@',

有任何想法吗?

回答

更正的版本:sed -r 's/(.{1})/'''1''',/g;s/,$//'- 反向引用应该在引号之间。不确定逗号后是否需要空格,我删除了它以允许第二个s命令匹配。

您还可以使用x27来表示单引号字符:

$ echo 'STRING#!-@' | sed 's/./x27&x27,/g; s/,$//'
'S','T','R','I','N','G','#','!','-','@'

& 将具有与正则表达式匹配的整个文本,因此在这种情况下无需使用捕获组。

其他注意事项:

  • 不用用cat file | sed '..',可以用sed '..' file
  • -E 与这些天相比,现在更便携 -r
  • .{1}.

以上是SED-如何将''和,添加到字符串的每个字符的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>