人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

AWKの質問です。
http://q.hatena.ne.jp/1227060292
の質問の続きになります。

最終的には回答の2番目(以下回答2)の方法を使いたいのですが、network(コメント参照)の中にの中に3.0.0.0のような「/」がないものがあり、回答2の方法では上手く動作しない箇所があります。従って回答2を使う前に

3.0.0.0 (スペース)next hop B5(スペース)その他データ
>(スペース)(スペース)next hop B6(スペース)その他データ
(スペース)(スペース)next hop B7(スペース)その他データ

のようなものがあったら上記データを全て削除する方法(AWKを使って)を教えてください。
質問の意図が分からなかったらコメント欄で質問してください。お願いします。

●質問者: labtest
●カテゴリ:コンピュータ インターネット
✍キーワード:AWK b6 network NeXT いもの
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● zzz_1980
●5ポイント

grep "/" で /を含む行だけ取り出してからawkにかければいいのでは。


2 ● zzz_1980
●95ポイント ベストアンサー
/bin/sh
awk 'BEGIN{FMT="%s %s\n";skip=1} \
 match($0,"^[0-9]") !=0 && index($1,"/")!=0{skip=0;NEXTNET=$1;} \
 match($0,"^[0-9]") !=0 && index($1,"/")==0{skip=1;} \
 ($2==">" && skip==0 ){print NEXTNET,$3;} \
 ($1==">" && skip==0 ){print NEXTNET,$2;}' <$*
exit

適当な名前 hop.sh などに書いたうえ、hop.sh sample.data としてください。

行頭が数字で列1中に"/"がないものが現れたら、その先行頭が数字で列1中に"/"を含む行が現れるまで

スキップするようにしてみました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ