使用sed复制字符

时间:2015-09-02 19:20:01

标签: sed computer-science

我正在努力尝试在某些单词上复制字符,但我写的sed脚本并不是我想做的。例如,我试图复制像这样的单词中的每个字符:

  

FILE到FFIILLEE

我知道如何删除重复的字母:

  

sed s / \(。\)\ 1 / \ 1 / g'file.txt

这是我写的sed脚本,但它最终会复制整个单词而我得到:

文件文件

这就是我写的:

  sed's / [A-Z] * /& & / g'file.txt

我如何抓住每个字母并复制该字母?

2 个答案:

答案 0 :(得分:1)

您的第一个脚本应略有不同:

sed 's/\(.\)/\1\1/g' file.txt

翻译:对于看到的每一个角色,单独替换它本身。

答案 1 :(得分:0)

sed 's/[[:alpha:]]/&&/g' file.txt
  • [:alpha:]类是可用字母的整个范围,您可以使用[:alnum:]扩展,包括数字
  • 替换模式中的
  • &是整个搜索模式匹配。在这种情况下1个字母
  • 每次可能出现的情况
  • g

您的问题是在搜索模式中使用*表示所有模式的出现,因此模式一次是整个单词而不是单词的每个字母