「ID」と数値エントリを含むファイル内の行を解析しようとしています。ただし、以下のスクリプトが行っているのは、「ID」の数値とその後のすべてを取得することです。「ID」+数値だけに切り詰めるにはどうすればよいですか?
前もって感謝します。
tail -n 1 events.log | sed 's/.*id=\([^)]\+\).*/\1/' > event_id.dat
「ID」と数値エントリを含むファイル内の行を解析しようとしています。ただし、以下のスクリプトが行っているのは、「ID」の数値とその後のすべてを取得することです。「ID」+数値だけに切り詰めるにはどうすればよいですか?
前もって感謝します。
tail -n 1 events.log | sed 's/.*id=\([^)]\+\).*/\1/' > event_id.dat
括弧内の正規表現文字列は です。これは[^)]\+
、「終了括弧以外のすべての文字」を意味します。
数字をキャッチしたい場合は、それを次のように変更する必要があります。[0-9]\+
入力と期待される出力の例がなければ、探しているものを伝えるのは難しいですが、これは最も一般的に機能する可能性があります。
sed -e 's/.*id=\([0-9]*\).*/\1/'
それは次のようになります。
[0-9]*
「id=」の直後にいくつかの数字 ( ) が含まれ、その前後に任意の数がある行を探します。\1
一致式の括弧内の部分を参照する場所) 。それはあなたが望むことをしますか?そうでない場合は、入出力要件をより明確にできますか?