使用 SED 修改模式

使用 SED 修改模式

我想知道是否sed可用于修改而不是通过替换模式的第一个字符来替换模式。我正在处理包含 的文本文件AXYZ,其中XYZ有各种三个字母的组合。有没有办法告诉sed全部更改AXYZXYZ,用A空格替换? - 麦克风

答案1

(...)使用三个字母组合的捕获组,即([A-Z]{3})和​​ 用于\1在替换中引用该(第一个)组。

例子:

$ printf '%s\n' AGLU AASP ALYS AVAL | sed -E 's/A([A-Z]{3})/ \1/'
 GLU
 ASP
 LYS
 VAL

答案2

是的,sed应该可以 - 如果我明白你真正想做的事情。下面是一个示例,其中包含字母 的字符串(可能是文件名)A。战略经济对话替换下面将替换第一次出现A分别带有_、 `` (零长度字符串)和 的字母

$ SOMEFILE="AASP"  
$ echo $SOMEFILE
AASP
$ echo $SOMEFILE | sed "s/A/_/"
_ASP
$ echo $SOMEFILE | sed "s/A//"
ASP
$ echo $SOMEFILE | sed "s/A/ /"
 ASP

相关内容