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