読者です 読者をやめる 読者になる 読者になる

labunix's blog

labunixのラボUnix

OSSDB SilverとGoldの例題をまとめてテキストで取得するワンライナー。

■OSSDB SilverとGoldの例題をまとめてテキストで取得するワンライナー。
 以前にも書いたワンライナーの「target」リストに
 「sample_gold_trouble.shtml」を追加して改めて実行してみる。
 Goldは40問、Silverは122問ある。

 OSS-DB Goldの例題をダウンロードして一ファイルにまとめるワンライナー
 http://labunix.hateblo.jp/entry/20140928/1411833011

 OSS-DB Silverの例題をダウンロードして一ファイルにまとめるワンライナー
 http://labunix.hateblo.jp/entry/20140928/1411910051

$ ls OSS-DB_GOLD/*.txt | wc -l
40

$ wc -l OSS-DB_Silver/*.txt | wc -l
122

■もう少しシンプルにする。

$ BASEURL=http://www.oss-db.jp/measures
  for list in silver gold ;do \
    curl "$BASEURL/sample_${list}_{management,knowledge,sql,monitoring,performance,trouble}.shtml" 2> /dev/null | \
      awk -F\" '/<em>Q./ && !/★★/ {print $2}' | \
      awk '{print "curl '$BASEURL'/"$1" 2>/dev/null"}' | sh | \
      awk '/<!-- main -->/,/<!-- .main -->/{print}' | \
      nkf -Lu -d | \
      sed -e 's%[SG][a-z]*の例題解説.*%<hr/>\n&%g' | \
      w3m -dump -T text/html | \
      awk '!/• |ませんので|    。$|^Yahoo/ || /• 提供/{print}' | \
      awk 'BEGIN{n=0};{if(/^[SG][a-z]*の例題解説/){n++;printf "%03d %s",n,$0}else{print $0}}' > ossdb_${list}_sample.txt
   done

$ awk '/Silverの例題解説/{SEOF=$1}; \
       /Goldの例題解説/{GEOF=$1}; \
       END{OFS="\n";print "Silver="SEOF,"Gold="GEOF}' ossdb_*_sample.txt
Silver=121
Gold=040

■例えば目次は以下のようになる。

$ awk '/[SG][a-z]*の例題解説/{print $0}' ossdb_*_sample.txt

001 Goldの例題解説「運用管理 - 運用管理用コマンド全般」
002 Goldの例題解説「運用管理 - データベースの構造」
003 Goldの例題解説「運用管理 - 運用管理用コマンド全般」
004 Goldの例題解説「運用管理 - 運用管理用コマンド全般」
005 Goldの例題解説「運用管理 - 運用管理用コマンド全般」
006 Goldの例題解説「運用管理 - 運用管理用コマンド全般」
007 Goldの例題解説「運用管理 - 運用管理用コマンド全般」
008 Goldの例題解説「運用管理 - 運用管理用コマンド全般」
009 Goldの例題解説「運用管理 - ホットスタンバイ運用」
010 Goldの例題解説「運用管理 - データベースの構造」
011 Goldの例題解説「運用管理 - データベースサーバ構築」
012 Goldの例題解説「運用管理 - 運用管理コマンド全般 - PITR」
013 Goldの例題解説「運用管理 - データベースの構造(プロセス構造)」
014 Goldの例題解説「運用管理 - データベースサーバ構築」
015 Goldの例題解説「性能監視 - クエリ実行計画」
016 Goldの例題解説「性能監視 - クエリ実行計画」
017 Goldの例題解説「性能監視 - クエリ実行計画」
018 Goldの例題解説「性能監視 - アクセス統計情報、関連パラメータ」
019 Goldの例題解説「性能監視 - アクセス統計情報、関連パラメータ」
020 Goldの例題解説「性能監視 - アクセス統計情報」
021 Goldの例題解説「性能監視 - oid2name」
022 Goldの例題解説「性能監視 - pg_locks」
023 Goldの例題解説「性能監視 - テーブル/カラム統計情報」
024 Goldの例題解説「性能監視 - クエリ実行計画」
025 Goldの例題解説「性能監視 - アクセス統計情報」
026 Goldの例題解説「パフォーマンスチューニング - 実行計画のチューニング」
027 Goldの例題解説「パフォーマンスチューニング - チューニングの実施」
028 Goldの例題解説「パフォーマンスチューニング - チューニングの実施」
029 Goldの例題解説「パフォーマンスチューニング - 性能に関するパラメータ」
030 Goldの例題解説「パフォーマンスチューニング - 性能に関するパラメータ」
031 Goldの例題解説「パフォーマンスチューニング - 性能に関するパラメータ」
032 Goldの例題解説「パフォーマンスチューニング - ディスクI/Oの分散」
033 Goldの例題解説「パフォーマンスチューニング - チューニングの実施」
034 Goldの例題解説「パフォーマンスチューニング - 性能に関係するパラメータ(ロック管理)」
035 Goldの例題解説「パフォーマンスチューニング - 性能に関係するパラメータ」
036 Goldの例題解説「障害対応 - ホット・スタンバイ復旧」
037 Goldの例題解説「障害対応 - 起こりうる障害のパターン」
038 Goldの例題解説「障害対応 - 開発者向けオプション」
039 Goldの例題解説「障害対応 - トランザクションログ復旧」
040 Goldの例題解説「障害対応 - 破損クラスタ復旧」
001 Silverの例題解説「運用管理 - インストール方法(initdbコマンドの使い方)」
002 Silverの例題解説「運用管理 - 基本的な運用管理作業(テーブル単位の権限、GRANT/REVOKE)」
003 Silverの例題解説「運用管理 - 基本的な運用管理作業(情報スキーマとシステムカタログ)」
004 Silverの例題解説「運用管理 - 基本的な運用管理作業(システム情報関数)」
005 Silverの例題解説「運用管理 - 基本的な運用管理作業(自動バキュームの概念と動作)」
006 Silverの例題解説「運用管理 - 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)」
007 Silverの例題解説「運用管理 - 基本的な運用管理作業(ユーザの追加・削除・変更)」
008 Silverの例題解説「運用管理 - バックアップ方法」
009 Silverの例題解説「運用管理 - バックアップ方法」
010 Silverの例題解説「運用管理 - バックアップ方法」
011 Silverの例題解説「運用管理 - バックアップ方法」
012 Silverの例題解説「運用管理 - 設定ファイル」
013 Silverの例題解説「運用管理 - 設定ファイル」
014 Silverの例題解説「運用管理 - 標準付属ツールの使い方」
015 Silverの例題解説「運用管理 - インストール方法」
016 Silverの例題解説「運用管理 - 基本的な運用管理作業(テーブル単位の権限)」
017 Silverの例題解説「運用管理 - 基本的な運用管理作業」
018 Silverの例題解説「運用管理 - 基本的な運用管理作業」
019 Silverの例題解説「運用管理 - バックアップ方法」
020 Silverの例題解説「運用管理 - 設定ファイル」
021 Silverの例題解説「運用管理 - 標準付属ツールの使い方」
022 Silverの例題解説「運用管理 - インストール方法」
023 Silverの例題解説「運用管理 - 基本的な運用管理作業」
024 Silverの例題解説「運用管理 - 基本的な運用管理作業」
025 Silverの例題解説「運用管理 - バックアップ方法」
026 Silverの例題解説「運用管理 - バックアップ方法」
027 Silverの例題解説「運用管理 - 基本的な運用管理作業」
028 Silverの例題解説「運用管理 - 基本的な運用管理作業」
029 Silverの例題解説「運用管理 - 設定ファイル」
030 Silverの例題解説「運用管理 - バックアップ方法」
031 Silverの例題解説「運用管理 - インストール方法」
032 Silverの例題解説「運用管理 - 標準付属ツールの使い方」
033 Silverの例題解説「運用管理 - 設定ファイル」
034 Silverの例題解説「運用管理 - バックアップ方法」
035 Silverの例題解説「運用管理 - 設定ファイル」
036 Silverの例題解説「運用管理 - インストール方法」
037 Silverの例題解説「運用管理 - 設定ファイル - エラー報告とログ取得」
038 Silverの例題解説「運用管理 - 基本的な運用管理作業」
039 Silverの例題解説「運用管理 - 基本的な運用管理作業 - システムカタログ」
040 Silverの例題解説「運用管理 - 基本的な運用管理作業 - 情報スキーマ
041 Silverの例題解説「運用管理 - 標準付属ツールの使い方」
042 Silverの例題解説「運用管理 - 設定ファイル」
043 Silverの例題解説「運用管理 - 基本的な運用管理作業」
044 Silverの例題解説「運用管理 - 基本的な運用管理作業」
045 Silverの例題解説「運用管理 - 標準付属ツールの使い方 - pg_ctl」
046 Silverの例題解説「運用管理 - 設定ファイル」
047 Silverの例題解説「運用管理 - 標準付属ツールの使い方」
048 Silverの例題解説「運用管理 - バックアップ方法」
049 Silverの例題解説「運用管理 - インストール方法」
050 Silverの例題解説「運用管理 - バックアップ方法」
051 Silverの例題解説「運用管理 - 標準付属ツールの使い方」
052 Silverの例題解説「運用管理 - バックアップ方法」
053 Silverの例題解説「運用管理 - 標準付属ツールの使い方」
054 Silverの例題解説「運用管理 - バックアップ方法」
055 Silverの例題解説「運用管理 - 基本的な運用管理作業」
056 Silverの例題解説「一般知識 - ライセンス」
057 Silverの例題解説「一般知識 - SQL一般知識」
058 Silverの例題解説「一般知識 - コミュニティ」
059 Silverの例題解説「一般知識 - RDBMSの一般知識」
060 Silverの例題解説「一般知識 - OSS-DBの一般的特徴」
061 Silverの例題解説「一般知識 - OSS-DBの一般的特徴」
062 Silverの例題解説「一般知識 - OSS-DBの一般的特徴」
063 Silverの例題解説「一般知識 - データベース設計、正規化」
064 Silverの例題解説「一般知識 - コミュニティ」
065 Silverの例題解説「一般知識 - OSS-DBの一般的特徴」
066 Silverの例題解説「一般知識 - ライセンス」
067 Silverの例題解説「開発/SQL - トランザクションの概念(トランザクションの構文) 」
068 Silverの例題解説「開発/SQL - 組み込み関数(文字列関数、演算子)」
069 Silverの例題解説「開発/SQL - 組み込み関数(算術関数、演算子)」
070 Silverの例題解説「開発/SQL - 組み込み関数(集約関数)」
071 Silverの例題解説「開発/SQL - SQLコマンド(関数定義、PL/pgSQL)」
072 Silverの例題解説「開発/SQL - SQLコマンド(スキーマ)」
073 Silverの例題解説「開発/SQL - SQLコマンド(シーケンス)」
074 Silverの例題解説「開発/SQL - SQLコマンド(トリガー)」
075 Silverの例題解説「開発/SQL - ビュー」
076 Silverの例題解説「開発/SQL - インデックス」
077 Silverの例題解説「開発/SQL - テーブル定義」
078 Silverの例題解説「開発/SQL - データ型」
079 Silverの例題解説「開発/SQL - SQLコマンド(INSERT/UPDATE/DELETE文)」
080 Silverの例題解説「開発/SQL - SQLコマンド(SELECT文-JOIN)」
081 Silverの例題解説「開発/SQL - SQLコマンド(SELECT文-副問い合わせ)」
082 Silverの例題解説「開発/SQL - SQLコマンド(SELECT文)」
083 Silverの例題解説「開発/SQL - トランザクション概念」
084 Silverの例題解説「開発/SQL - トランザクション概念」
085 Silverの例題解説「開発/SQL - 組み込み関数(文字列演算子)」
086 Silverの例題解説「開発/SQL - 組み込み関数」
087 Silverの例題解説「開発/SQL - 組み込み関数」
088 Silverの例題解説「開発/SQL - テーブル定義」
089 Silverの例題解説「開発/SQL - データ型」
090 Silverの例題解説「開発/SQL - UPDATE文」
091 Silverの例題解説「開発/SQL - SELECT文」
092 Silverの例題解説「開発/SQL - トランザクション
093 Silverの例題解説「開発/SQL - 組み込み関数(文字列関数)」
094 Silverの例題解説「開発/SQL - テーブル定義」
095 Silverの例題解説「開発/SQL - データ型」
096 Silverの例題解説「開発/SQL - 組み込み関数(算術演算子)」
097 Silverの例題解説「開発/SQL - SQLコマンド - スキーマ
098 Silverの例題解説「開発/SQL - SQLコマンド」
099 Silverの例題解説「開発/SQL - トランザクション
100 Silverの例題解説「開発/SQL - SELECT文」
101 Silverの例題解説「開発/SQL - データ型」
102 Silverの例題解説「開発/SQL - データ型」
103 Silverの例題解説「開発/SQL - トランザクション
104 Silverの例題解説「開発/SQL - SELECT文」
105 Silverの例題解説「開発/SQL - 時間関数」
106 Silverの例題解説「開発/SQL - SQLコマンド」
107 Silverの例題解説「開発/SQL - トランザクション
108 Silverの例題解説「開発/SQL - 時間関数」
109 Silverの例題解説「開発/SQL - SELECT文」
110 Silverの例題解説「開発/SQL - テーブル定義」
111 Silverの例題解説「開発/SQL - SELECT 文」
112 Silverの例題解説「開発/SQL - テーブル定義」
113 Silverの例題解説「開発/SQL - UPDATE文」
114 Silverの例題解説「開発/SQL - 組み込み関数(集約関数)」
115 Silverの例題解説「開発/SQL - トランザクション
116 Silverの例題解説「開発/SQL - 文字列演算子 - 文字列関数」
117 Silverの例題解説「開発/SQL - 組み込み関数 - 文字列演算子
118 Silverの例題解説「開発/SQL - SQLコマンド - テーブル定義」
119 Silverの例題解説「開発/SQL - SQLコマンド」
120 Silverの例題解説「開発/SQL - 組み込み関数」
121 Silverの例題解説「開発/SQL - SQLコマンド」