ルーティングテーブルをMarkdown形式で表示するスクリプトを作成
      
      ルーティングテーブルをMarkdown形式で表示するスクリプトを作成 ipコマンドのrouteオプション表示されるルーティングテーブルをMarkdown形式で表示するスクリプトを作成したので、下記に記載する。
ファイル内容 シェルスクリプトとawkの2ファイルで構成される。
 make_markdown_route.sh   #!/bin/bash # # ipコマンドで表示したルーティングテーブル情報をMarkdown形式に変換して表示するスクリプト #---------------------------------------------------------------------------------------  current_directory_path="$( dirname "$(readlink -f $0)" )" ip route show table all | awk -f "${current_directory_path}/make_markdown_route.awk"  make_markdown_route.awk   #!/usr/bin/awk # # ipコマンドで表示したルーティングテーブル情報をMarkdown形式に変換して表示するスクリプト # # Note: # * Destination : 宛先アドレス # * Scope : 送信先 # - scope link: 直接unicast/broadcastにて通信する経路。自身が属するネットワーク等が該当。 # - scope host: 自分自身への経路 # - scope global: (他ネットワークへの)ゲートウェイを経由したunicast通信による経路。 # * Protocol : # - proto kernel:カーネルが自動生成した経路。 #-----------------------------------------------------------------------  #----------------------------------------------------------------------- # 事前処理 #----------------------------------------------------------------------- BEGIN {   # ヘッダー部分の出力  printf("| %-17s | ", "Destination");  printf("%-15s | ", "Gateway");  printf("%-15s | ", "Source");  printf("%-8s | ", "Protocol");  printf("%-8s | ", "Scope");  printf("%-6s | ", "Metric");  printf("%-4s | ", "Dev");  printf("%-9s | ", "Table");  printf("\n");   printf("| %-17s | ", "---");  printf("%-15s | ", "---");  printf("%-15s | ", "---");  printf("%-8s | ", "---");  printf("%-8s | ", "---");  printf("%-6s | ", "---");  printf("%-4s | ", "---");  printf("%-9s | ", "---");  printf("\n");  }  #----------------------------------------------------------------------- # 配下を初期化する関数 #----------------------------------------------------------------------- function initialize_array(array){   array["route"] = "";  array["dest"] = "";  array["mask"] = "";  array["via"] = "";  array["dev"] = "";  array["proto"] = "";  array["scope"] = "";  array["src"] = "";  array["metric"] = "";   return 0;  }  #----------------------------------------------------------------------- # 配列の内容を出力 #----------------------------------------------------------------------- function print_array(array){   printf("| %-17s | ", array["dest"]);  printf("%-15s | ", array["via"]);  printf("%-15s | ", array["src"]);  printf("%-8s | ", array["proto"]);  printf("%-8s | ", array["scope"]);  printf("%-6s | ", array["metric"]);  printf("%-4s | ", array["dev"]);  printf("%-9s | ", array["table"]);   printf("\n");   return 0;  }  #----------------------------------------------------------------------- # メイン処理 #----------------------------------------------------------------------- {  initialize_array(array)  begin_number=2   # テーブル情報が含まれる場合 = 項目数が偶数の場合  # Exsample:  # broadcast 127.