正则表达式删除字符串?

时间:2011-07-28 21:53:03

标签: regex bash

我在这里搜索了很多正则表达式的问题,但是没有发现一个可以删除一串四个字母的问题......

我将文件名传递给bash脚本,我想从名称中删除前五个字符,例如

myscript.sh AB2CDrestoffilename

包含

FILENAME=$1
OUTPUTFILENAME="out$FILENAME"

除了我希望OUTPUTFILENAME为outrestoffilename而不是outAB2CDrestoffilename

我尝试过很多不同的例子,但却无法完成这项相对简单的工作。

3 个答案:

答案 0 :(得分:3)

在Bash中,您使用参数扩展:

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

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

没有必要在最轻微的挑衅下为了正则表达式而过火而哭--Bash有足够的力量!

答案 1 :(得分:3)

你不需要正则表达式,你可以使用bash substring:

OUTPUTFILENAME="out${FILENAME:5}"

答案 2 :(得分:1)

无需regexp,

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

请参阅this link