bash字符串匹配

简介: #!/bin/sh foo() {     local basedir=$1     local all_entries=`ls -c`     for entry in $all_entries     do           if test -d $entry; ...
#!/bin/sh


foo()
{
    local basedir=$1
    local all_entries=`ls -c`


    for entry in $all_entries
    do  
        if test -d $entry; then
            cd $entry&&foo ${basedir}/$entry;cd - >/dev/null
        else
            if [[ $entry =~ .+\.(cpp|cc|h|hpp) ]]; then # 看这里
                #echo $basedir/$entry
                source_files="$source_files $basedir/$entry"
            fi  
        fi  
    done
}


foo .
echo $source_files


An additional binary operator, =~, is available, with the same precedence as == and !=.  When it is used, the string to the right of the operator is considered an extended regular expression and matched accordingly (as in  regex(3)).   The  return value  is  0 if the string matches the pattern, and 1 otherwise.  If the regular expression is syntactically incorrect, the conditional expression's return value is 2.
相关文章
|
Shell 数据处理
Bash 中检查文件是否包含字符串
【8月更文挑战第27天】
759 5
|
运维 Shell
善用chatGPT学习 | bash脚本如何判断字符串在数组中
善用chatGPT学习 | bash脚本如何判断字符串在数组中
629 0
|
Shell
bash/shell的字符串trim实现
#!/bin/sh trim() {     trimmed=$1     trimmed=${trimmed%% }     trimmed=${trimmed## }     echo $trimmed }测试: a=" x x " b=" b b" c="c...
1542 0
|
Shell Perl
Bash Shell(字符串)操作小结
基本下面引用的文章,加了几项, 做个记录,懒得记了,也省得每次Google。 http://my.oschina.net/aiguozhe/blog/41557 1.
1210 0