0

「ID」と数値エントリを含むファイル内の行を解析しようとしています。ただし、以下のスクリプトが行っているのは、「ID」の数値とその後のすべてを取得することです。「ID」+数値だけに切り詰めるにはどうすればよいですか?

前もって感謝します。

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

2 に答える 2

0

括弧内の正規表現文字列は です。これは[^)]\+、「終了括弧以外のすべての文字」を意味します。

数字をキャッチしたい場合は、それを次のように変更する必要があります。[0-9]\+

于 2011-07-13T18:49:10.387 に答える
0

入力と期待される出力の例がなければ、探しているものを伝えるのは難しいですが、これは最も一般的に機能する可能性があります。

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

それは次のようになります。

  1. [0-9]*「id=」の直後にいくつかの数字 ( ) が含まれ、その前後に任意の数がある行を探します。
  2. これらの行を数字だけに置き換えます (\1一致式の括弧内の部分を参照する場所) 。

それはあなたが望むことをしますか?そうでない場合は、入出力要件をより明確にできますか?

于 2011-07-13T18:49:41.840 に答える