当前位置:  开发笔记 > 编程语言 > 正文

Unix - 替换

如何解决《Unix-替换》经验,为你挑选了1个好方法。

我有替代问题.我有一个带有1行随机字符的文件,括号"{}"大约1个字符.我想在前一个字符或下一个字符上移动这些括号.(如果角色线仍然不变,我知道该怎么做.)但我不知道如何在不知道这些字符的情况下这样做,我不知道这些括号在哪里.

例如:"ABC123 {X} CBA321"==>"ABC12 {3} XCBA321"或"ABC123X {C} BA321"

我想使用awk或sed,一些正则表达式,也许......



1> strager..:

向后移动一个字符:

sed -e 's/\(.\){\(.\)}/{\1}\2/g' file

向前移动一个字符:

sed -e 's/{\(.\)}\(.\)/\1{\2}/g' file

要就地修改文件,请使用-i标志:

sed -i -e 's/\(.\){\(.\)}/{\1}\2/g' file
sed -i -e 's/{\(.\)}\(.\)/\1{\2}/g' file

第一个示例通过匹配任何字符后跟包围的字符来工作{}.没有分组,这是:.{.} 我们添加分组,以便我们可以将两个字符放在输出中.而不是{}用第一个字符环绕第二个字符.这是{\1}\2.

第二个示例的工作方式类似,但{.}.首先匹配然后输出\1{\2}.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有