2017-08-17 9 views
1

私はテキストファイルを持っています。 特定の形式で始まる行を取得したい。 x/x/x形式の行を取得したいだけです。 xは数字です。 しかし、この正規表現は機能しません。それは常に一致を与えていない:Linuxシェルスクリプト正規表現一致

while read line   
do   
    regex="\d+\/\d+\/\d+" 
    if [[ ${line} =~ ${regex} ]]; then 

     echo ${line} 

    else 

     echo "no match : ${line}" 

    fi  
done <${textFileName} 

ファイルは次のとおりです。

enter image description here

答えて

1

あなたがより良いツールを使用できるかどうかはbashを使用しないでください:あなたが持っている場合でも、

grep -E '^[[:digit:]]+/[[:digit:]]+/[[:digit:]]+' "${textFileName}" 

をbashを使用する:

\dは無効ですregex(3)

+0

こんにちは、私はあなたのコードを適用しました。しかし、仕事はなかった。 IFS = read -r行 do [["$ {line}" =〜 '[[:digit:]] +/[[:digit:]] +/[[:digit:]] +' ]];その後、 エコー - "X:$ライン" 他 エコー "一致:$ライン" Fiの 済< "$ textFileName" – ivbtar

+0

は正規表現を引用しないでください –