2017-02-16 1 views
0

出力には0と1だけが含まれます。これは、正確に単一の '1'桁の数字が続きます。私は正規表現の下で試してみました - それはゼロを終了しますが、先行する非ゼロ値をフィルタリングすることに失敗します。 (下記の失敗例を参照)。正確に数字「1」の前に続くか、または0の場合に任意の数字を続けますか?

# echo 00000000020000000000010000000000 | grep -E "0{1,}+10{8,}0$" 
00000000020000000000010000000000 #not ok 
# echo 6C740100000000000000000000000000 | grep -E "0{1,}+10{8,}0$" 
6C740100000000000000000000000000 #not ok 
# echo 0001000100000000000000000000000000 | grep -E "0{1,}+10{8,}0$" 
0001000100000000000000000000000000 #not ok 
# echo 0000000100000000000000000000000000 | grep -E "0{1,}+10{8,}0$" 
0000000100000000000000000000000000 #ok 

非常に基本的なものがありません。助けてくれてありがとう。

答えて

3

あなたはそれを考えすぎています。

echo "..." | grep '^0*10*$' 
^

$あなたが全体のライン、真ん中にだけではなく、サブストリングに一致していることを確認。 0*はゼロ以上です。 1は自明です:)。

+0

はい、あなたは正しいです:そうすれば、数分で答えとして受け入れることができます。助けてくれてありがとう:D –

関連する問題