0

私はうまくいくと思うようなものを試し=~ "\[[A-Za-z0-9]+\]"ましたが、うまくいきません。私も試し"[[A-Za-z0-9]+]"てみ"\[[:alnum:]+\]"ました。私は何を間違っていますか?一致させたいサンプル行: [RTNUT18](ファイルを反復処理しています。一部の行はこの形式です)

これは私のコードスニペットです:

while read line;
do
    if [[ $line =~ "^\[[A-Za-z0-9]+\]$" ]]; then
        echo match
    else
        echo no match
    fi
done < $1

これはサンプル ファイルです。

[RBPAT7]
Whatever=foo,bla
Otherline
RRR

そして私は実行します:

./script.sh thefile.txt

[RBPAT7]まったくラインに当たらない

4

1 に答える 1

1

そんなものじゃ物足りない。で使用する必要があります[[

$ [[ [foo] =~ ^\[[A-Za-z0-9]+\]$ ]] ; echo $?
0

編集:

とは異なりtest[[引数を引用符で囲む必要はありません。"行の先頭の前にも"末尾の後にもできないため、コードは何にも一致しません。引用符を削除します。

于 2012-09-17T00:56:06.460 に答える