7
从Grep RegEx捕获组
我在sh(Mac OSX 10.6)中有了这个小脚本,可以查看文件数组。Google现已停止提供帮助: files="*.jpg" for f in $files do echo $f | grep -oEi '[0-9]+_([a-z]+)_[0-9a-z]*' name=$? echo $name done 到目前为止(显然,对于您的shell专家来说)$name仅保留0、1或2,具体取决于是否grep发现文件名与提供的文件匹配。我想要的是捕获内部的内容([a-z]+)并将其存储到变量中。 如果可能的话,我只想使用grep。如果没有,请不要使用Python或Perl等sed类似的东西–我是Shell的新手,并且希望从* nix纯粹主义者的角度进行攻击。 另外,作为超酷的bonu,我很好奇如何在shell中连接字符串?我捕获的组是$ name中存储的字符串“ somename”,我想在其末尾添加字符串“ .jpg” cat $name '.jpg'吗? 如果有时间,请解释发生了什么。