
この出力を含むファイルがあり、私のファイルから有用なデータを収集しようとしています。
R1#show ip route 192.168.5.130
Routing Descriptor Blocks:
* 192.168.5.128, from 192.168.5.162, 00:20:16 ago, via Serial0/0/0.2
Route metric is 2172416, traffic share count is 1
Total delay is 20100 microseconds, minimum bandwidth is 1544 Kbit/sec
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
上記の段落に「metric」という単語がある場合は、一致を探したいと思います。これにより、行だけでなく段落全体が表示されるはずです。
条件を確認する方法もあります。 metric==2172416 の場合は、段落全体を返します。
さまざまなシナリオに適用するので、最も簡単な方法を知りたいです。
また、私のファイルにこの内容がある場合、4月11日の行のみをインポートする方法は何ですか?ここでワイルドカードを使用できますか?
CPU0:Apr 11 05:22:04.768 UTC: pim[1182]: %ROUTING-IPV4_PIM-5-INTCHG :
CPU0:Apr 11 05:22:04.769 UTC: pim[1182]: %ROUTING-IPV4_PIM-5-NBRCHG :
CPU0:Apr 11 05:22:04.769 UTC: pim[1182]: %ROUTING-IPV4_PIM-5-NBRCHG :
CPU0:Apr 11 06:09:53.066 UTC: pim[1182]: %ROUTING-IPV4_PIM-5-INTCHG :
CPU0:Apr 11 06:09:53.066 UTC: pim[1182]: %ROUTING-IPV4_PIM-5-NBRCHG :
CPU0:Apr 11 06:09:56.707 UTC: pim[1182]: %ROUTING-IPV4_PIM-5-NBRCHG :
答え1
awk '/Route metric is 2172416/,/Loading/' file.txt
上記のコマンドは、次の行を印刷します。ルート指標は2172416です。そして読み込み中ワイヤー
awk '/Apr 11/' second_file.txt
grep 'Apr 11' second_file.txt
上記のコマンドは、次のファイルを印刷します。4月11日。 grepを使用することもできます。
答え2
最初のファイルのデータが空の行を使用して表示されたものとまったく同じであると仮定すると、GNU grep
(または他のもの)を使用して周囲のコンテキストを要求できます。
grep -B 5 -A 6 -F 'Route metric is 2172416' file
これにより、一致前の5行のコンテキスト、一致後の6行のコンテキスト、および固定文字列を含む行が返されますRoute metric is 2172416
。
記載されているすべての行を取得するには、次の手順を実行しますApr 11
。
grep -F 'Apr 11' file
または、より具体的な一致基準が必要な場合
grep '^CPU0:Apr 11' file
...これを行うには、与えられたパターンが行の先頭に一致する必要があります。