如何使用正则表达式替换字符串?

时间:2015-04-21 04:58:50

标签: regex bash

我被困在用bash替换一组字符串。 字符串看起来像set18set18_nopep.fa。我想用set18 / set18_nopep.fa替换字符串。数字可以从1-9999。因此,位数也是可变的。

2 个答案:

答案 0 :(得分:3)

echo set18set18_nopep.fa | sed 's|[0-9]\+|&/|'

输出:

set18/set18_nopep.fa

答案 1 :(得分:1)

在数字末尾和单词set之间加上斜杠:

$ s=set18set18_nopep.fa
$ echo "$s" | sed -r 's|([[:digit:]])set|\1/set|'
set18/set18_nopep.fa

将新值分配给名为t的字符串:

$ t=$(echo "$s" | sed -r 's|([[:digit:]])set|\1/set|')
$ echo "$t"
set18/set18_nopep.fa