2011-07-28 39 views
2

我已经搜查了许多正则表达式的问题在这里的错误都没有发现一个可以去除的四个字母串...regexp删除一个字符串?

我通过文件名来一个bash脚本,我想删除前五个字符从名字,例如

myscript.sh AB2CDrestoffilename 

包含

FILENAME=$1 
OUTPUTFILENAME="out$FILENAME" 

除了我想为OUTPUTFILENAME是outrestoffilename,而不是outAB2CDrestoffilename

我已经尝试了很多不同的例子,但不能得到这个相对简单的工作。

+0

具有u试过'预浸料。替换' – diEcho

+0

@diEcho不,什么是'preg.replace'? – David

回答

3

在bash中,你使用参数扩展:

A="Helloworld"; echo ${A:5} 

在你的情况,说OUTPUTFILENAME="out${FILENAME:5}"

没有必要为最轻微的挑衅而为正则表达式感到沮丧和哭泣 - Bash有足够的力量!

3

你不需要为这个正则表达式,你可以使用bash子:

OUTPUTFILENAME="out${FILENAME:5}" 
1

无需正则表达式,

$ string=AB2CDrestoffilename 
$ echo ${string:5} 
restoffilename 

this link