2011-07-13 9 views
0

"ID"と数字の入ったファイル内の行を解析しようとしています。しかし、以下のスクリプトが行っていることは、 "ID"数値とその後のすべてを取得することです。どうすれば "ID" +数値に切り捨てることができますか?必要なデータを取得するために文字列を解析する

ありがとうございます。カッコ内の

tail -n 1 events.log | sed 's/.*id=\([^)]\+\).*/\1/' > event_id.dat 
+0

貼り付けの例 –

+0

すべての一致に「id =」が含まれている場合、本当にその部分を正規表現で取り込む必要はありませんか?あなたは単に数値をキャッチして "id ="をあなた自身に追加できませんか? – Ziggy

答えて

0

あなたの正規表現文字列は、「エンドブラケット以外のすべての文字を」を意味し、[^)]\+です。

桁の数字は、あなたがキャッチしたいものである場合、あなたは[0-9]\+

0

にそれを変更する必要がありますそれはあなたが入力と期待される出力の例なし探しているものを言うのは難しいのですが、これは最も一般的に働くかもしれませんライン用

  1. ルック "はidは=" すぐ任意の量で、いくつかの数字([0-9]*)、続いて、次のとおり:に達する

    sed -e 's/.*id=\([0-9]*\).*/\1/' 
    

    前または

  2. 後に何のあなたがやりたい( \1が一致式に括弧内の部分を参照)数字だけ

ないと、それらの行を置き換えますか?そうでない場合は、入力/出力要件をより明示することができますか?

+0

私はあなたがそれを持っていると思います。それを試して、報告して戻します。すべての入力をありがとう、みんな。 – Jade

関連する問題