我在这里搜索了很多正则表达式的问题,但是没有发现一个可以删除一串四个字母的问题......
我将文件名传递给bash脚本,我想从名称中删除前五个字符,例如
myscript.sh AB2CDrestoffilename
包含
FILENAME=$1
OUTPUTFILENAME="out$FILENAME"
除了我希望OUTPUTFILENAME为outrestoffilename
而不是outAB2CDrestoffilename
。
我尝试过很多不同的例子,但却无法完成这项相对简单的工作。
答案 0 :(得分:3)
在Bash中,您使用参数扩展:
A="Helloworld"; echo ${A:5}
在您的情况下,请说OUTPUTFILENAME="out${FILENAME:5}"
。
没有必要在最轻微的挑衅下为了正则表达式而过火而哭--Bash有足够的力量!
答案 1 :(得分:3)
你不需要正则表达式,你可以使用bash substring:
OUTPUTFILENAME="out${FILENAME:5}"
答案 2 :(得分:1)