Bar*_*erg 3 regex bash shell awk grep
在我的bash脚本中,我有一个像.的文件名数组
files=( "site_hello.xml" "site_test.xml" "site_live.xml" )
Run Code Online (Sandbox Code Playgroud)
我需要提取下划线和.xml扩展名之间的字符,以便我可以遍历它们以便在函数中使用.
如果这是python,我可能会使用类似的东西
re.match("site_(.*)\.xml")
Run Code Online (Sandbox Code Playgroud)
然后提取第一个匹配的组.
不幸的是这个项目需要用bash,所以 - 我怎样才能在bash脚本中做这种事情?我对grep,sed或awk不是很好.
像下面这样的东西应该工作
files2=(${files[@]#site_}) #Strip the leading site_ from each element
files3=(${files2[@]%.xml}) #Strip the trailing .xml
Run Code Online (Sandbox Code Playgroud)
编辑:纠正这两个错别字后,它似乎工作:)