■pdftotext/pdfgrepでPDFの内容を検索する
AWS関連の情報で保存した方が良さそうなものを集めていたら、
PDFファイルが54にもなった。
まだまだ増えそうなので、検索方法を考える。
$ lsb_release -d
Description: Debian GNU/Linux 9.5 (stretch)
$ ls *.pdf | wc -l
54
■まずは必要なツールをインストール
$ apt-file search bin/pdftotext
poppler-utils: /usr/bin/pdftotext
$ apt-file search bin/pdfgrep
pdfgrep: /usr/bin/pdfgrep
$ sudo apt-get install -y poppler-utils pdfgrep
■PDFファイル名だけで最大79文字あるので、
ファイル名を出力したら改行するものとする。
$ ls *.pdf | awk '{print "echo \042"$0"\042 | wc -c"}' | sh | awk 'BEGIN{max=0}{if(max<$0){max=$0}}END{print max}'
79
■見出しを集める。
pdftotextでPDFtext形式にする際にファイルではなく標準出力に出力する方法
見出しなので、3行位あればなんとかなる想定。
$ ls *.pdf | \
awk '{print "echo \042###"$0"\042;pdftotext \042"$0"\042 - | head -n 3"}' | sh | \
awk '{if($0 ~ /###/){printf "\n%s\n",$0}else{printf "%s,",$0}}END{print "\n"}'
AWS Basic トレーニング,~事前準備編~,2012年6月29日,
AWS Basic トレーニング,~0.アカウント作成編~,2012年6月29日,
AWSマイスターシリーズ,Reloaded,Amazon S3,
AWS Storage Gateway,&,VM Import/Export,
AWSマイスターシリーズ,Amazon Elastic Compute Cloud,(Amazon EC2),
re:G,ene,rate,
Run Code in The Cloud,AWS Lambda 概要,,
Amazon EC2,スポットインスタンス,Auto Scaling,
AWS Lambda Updates,Keisuke Nishitani (@Keisuke69),Amazon Web Services Japan K.K.,
Amazon EC2 - Windows,AWS Black Belt Online Seminar 2016,アマゾン ウェブ サービス ジャパン株式会社,
Amazon Virtual Private Cloud (VPC),AWS Black Belt Online Seminar 2016 ,,
【AWS Black Belt Online Seminar】,Elastic Load Balancing (ELB),アマゾン ウェブ サービス ジャパン株式会社,
【AWS Black Belt Online Seminar】,Amazon EC2 スポットインスタンス,アマゾン ウェブ サービス ジャパン株式会社,
【AWS Black Belt Online Seminar】,HPC分野でのAWS活用,アマゾンウェブサービスジャパン株式会社,
【AWS Black Belt Online Seminar】,,AWS Elastic Beanstalk,
【AWS Black Belt Online Seminar】,,https://amazonlightsail.com/,
【AWS Black Belt Online Seminar】,,AWS Batch,
Auto Scaling,AWS Black Belt Online Seminar 2017,アマゾン ウェブ サービス ジャパン株式会社,
【AWS Black Belt Online Seminar】,Server Migration Service &,Application Discovery Service,
AWS Lambda,,Keisuke Nishitani (@Keisuke69),
【AWS Black Belt Online Seminar】,,AWS のコスト最適化/リザーブドインスタンス,
【AWS Black Belt Online Seminar】,,re:Invent Recap: Security and Other,
【AWS Black Belt Online Seminar】,Amazon Container Services,Ryosuke Iwanaga, Solutions Architect,
【AWS Black Belt Online Seminar】,AWS Lambda@Edge,アマゾンウェブサービスジャパン株式会社,
【AWS Black Belt Online Seminar】,,Amazon EC2,
【AWS Black Belt Online Seminar】,,
•,
【AWS Black Belt Online Seminar】,,Introduction to AWS Fargate and,
【AWS Black Belt Online Seminar】,S3ユースケース及びサービスアップデート,アマゾン ウェブ サービス ジャパン株式会社,
AWS Black Belt Online Seminar,Amazon QuickSight,,
【AWS Black Belt Online Seminar】,AWS Well-Architected Framework,,
AWS 認定デベロッパー – アソシエイト(DVA-C01) 試験ガイド,,はじめに,
AWS 認定ソリューションアーキテクト - アソシエイト (新版),SAA-C01 試験ガイド,,
AWS 認定ソリューションアーキテクト - アソシエイト (2018 年 2 月開始),SAA-C01 サンプル試験,Q1.,
AWS 認定 SysOps アドミニストレーター,- アソシエイトレベル試験要覧,,
アマゾン ウェブ サービス – AWS 認定システムオペレーションアドミニストレーター – アソシエイトレベル試験サンプル,Q1. Amazon RDS の操作において、AWS が責任を持って実施する管理関連タスクは次のうちどれですか?2 つ選択し,てください。,
アマゾン ウェブ サービス – AWS 認定 デベロッパー– アソシエイトレベルサンプル試験,Q1. 次の文のうち、SQS について正しく述べているものはどれですか?,A.,
AWS Storage Services,Overview,A Look at Storage Services Offered by AWS,
High-Performance Computing,Lens,AWS Well-Architected Framework,
AWSの課⾦体系,2013年10⽉,,
Serverless Applications Lens,AWS Well-Architected Framework,,
AWS Solutions Architect – Associate (Released February 2018) (SAA-C01),Sample Exam Questions,1) A company is storing an access key (access key ID and secret access key) in a text file on a custom,
AWS Certified Solutions Architect –,Associate (Released February 2018) SAA-C01 Exam Guide,,
Architecting for the Cloud,AWS Best Practices,,
Amazon Web Services: Risk and,Compliance,,
Amazon Web Services:,Overview of Security,Processes,
AWS Simple Monthly Calculator,(簡易見積ツール),解説資料,
AWS Certified Solutions Architect – Associate Level,Sample Exam Questions,,
Elastic Load Balancing(ELB)を評価するためのベストプラクティス,本ドキュメントはアマゾン ウェブ サービス(以下、AWS)の Elastic Load Balancing(エラ,スティック ロード バランシング、以下 ELB)サービスの機能やアーキテクチャについて説,
Amazon WorkSpaces をデプロイ,するためのベストプラクティス,ネットワークアクセス、ディレクトリサービス、セキュリティ,
AWS による優れた設計の,フレームワーク,2016,
Overview of,Amazon Web Services,,
AWS Basic トレーニング,,2012年8月3日,
AWS体験ハンズオン, 〜~セキュア&スケーラブルウェブサービス構築〜~,,
AWS Cloud Roadshow 2016,セルフペースラボ ハンズオン,第 1 回 12:00 - 13:40,
■見出しを集めているうちに、検索キーワードになりそうな、例えば「AWS Basic トレーニング」で検索する。
$ pdfgrep -Hn --color auto 'AWS Basic トレーニング' *.pdf | awk '/:1:/'
0awsbasicprepare20120629-120726021027-phpapp02.pdf:1:AWS Basic トレーニング
1awsbasicsignup20120629-120726021013-phpapp01.pdf:1:AWS Basic トレーニング
awsbasic20120629-120726021001-phpapp02.pdf:1:AWS Basic トレーニング
■テキストに変換して検索する。
毎回およそ207MBあって、これからも増えるかも知れないPDFファイルを
毎回検索するのは非効率。「.txt」がなければPDFからテキストに変換する。
$ du *.pdf | awk 'BEGIN{sum=0}{sum+=$1}END{print sum/1024"MB"}'
207.441MB
$ ls *.pdf | awk '{gsub(".pdf","",$0);print "test -f \042"$0".txt\042 || pdftotext \042"$0".pdf\042 \042"$0".txt\042"}' | sh
$ awk '/AWS Basic トレーニング/{a[FILENAME]+=1}END{for(n in a){print a[n],n}}' *.txt
7 awsbasic20120629-120726021001-phpapp02.txt
1 0awsbasicprepare20120629-120726021027-phpapp02.txt
1 1awsbasicsignup20120629-120726021013-phpapp01.txt
$ head -3 *.txt | awk '{if($0 ~ /==/){printf "\n%s\n",$0}else{printf "%s,",$0}}END{print "\n"}'
==> 0awsbasicprepare20120629-120726021027-phpapp02.txt <==
AWS Basic トレーニング,~事前準備編~,2012年6月29日,,
==> 1awsbasicsignup20120629-120726021013-phpapp01.txt <==
AWS Basic トレーニング,~0.アカウント作成編~,2012年6月29日,,
==> 20120319aws-meister-reloaded-s3-120613233326-phpapp01.txt <==
AWSマイスターシリーズ,Reloaded,Amazon S3,,
==> 20120625_AWS-Meister-Reloaded-SG-VMIE-public.txt <==
AWS Storage Gateway,&,VM Import/Export,,
==> 20130313aws-meister-regenerate-ec2public-130317204207-phpapp01.txt <==
AWSマイスターシリーズ,Amazon Elastic Compute Cloud,(Amazon EC2),,
==> 20140129_AWS-Meister-Reloaded-ephemeral-ebs-public.txt <==
re:G,ene,rate,,
==> 20150701_AWS-BlackBelt-runcodeinthecloud.txt <==
Run Code in The Cloud,AWS Lambda 概要,,,
==> 20151216aws-blackbelt-spotandautoscaling-151216103113.txt <==
Amazon EC2,スポットインスタンス,Auto Scaling,,
==> 20160302_AWS-BlackBelt-Lambda-update.txt <==
AWS Lambda Updates,Keisuke Nishitani (@Keisuke69),Amazon Web Services Japan K.K.,,
==> 20160420_AWS-Blackbelt-EC2-Windows.txt <==
Amazon EC2 - Windows,AWS Black Belt Online Seminar 2016,アマゾン ウェブ サービス ジャパン株式会社,,
==> 20160803-aws-blackbelt-vpc-160803104129.txt <==
Amazon Virtual Private Cloud (VPC),AWS Black Belt Online Seminar 2016 ,,,
==> 20161012_AWS-BlackBelt-ELBUpdate.txt <==
【AWS Black Belt Online Seminar】,Elastic Load Balancing (ELB),アマゾン ウェブ サービス ジャパン株式会社,,
==> 20161109_AWS-BlackBelt-EC2Spot.txt <==
【AWS Black Belt Online Seminar】,Amazon EC2 スポットインスタンス,アマゾン ウェブ サービス ジャパン株式会社,,
==> 20161122_AWS-BlackBelt-HPConAWS.txt <==
【AWS Black Belt Online Seminar】,HPC分野でのAWS活用,アマゾンウェブサービスジャパン株式会社,,
==> 20170111_AWS-Blackbelt-Elastic-Beanstalk.txt <==
【AWS Black Belt Online Seminar】,,AWS Elastic Beanstalk,,
==> 20170118_AWS-Blackbelt-Lightsail-public02.txt <==
【AWS Black Belt Online Seminar】,,https://amazonlightsail.com/,,
==> 20170208_AWS-BlackBelt-AWSbatch.txt <==
【AWS Black Belt Online Seminar】,,AWS Batch,,
==> 20170315_AWS-BlackBelt-AutoScaling.txt <==
Auto Scaling,AWS Black Belt Online Seminar 2017,アマゾン ウェブ サービス ジャパン株式会社,,
==> 20170621_AWS-BlackBelt-ads-sms.txt <==
【AWS Black Belt Online Seminar】,Server Migration Service &,Application Discovery Service,,
==> 20170719_AWS_BlackBelt_Lambda_demo.txt <==
AWS Lambda,,Keisuke Nishitani (@Keisuke69),,
==> 20171110_AWS-BlackBelt_RI_update.txt <==
【AWS Black Belt Online Seminar】,,AWS のコスト最適化/リザーブドインスタンス,,
==> 20180124aws-blackbelt-security-other-recap-180124095800.txt <==
【AWS Black Belt Online Seminar】,,re:Invent Recap: Security and Other,,
==> 20180220_Amazoncontainerservices-blackbelt-180220131635.txt <==
【AWS Black Belt Online Seminar】,Amazon Container Services,Ryosuke Iwanaga, Solutions Architect,,
==> 20180221_AWS_Lambda_at_Edge_Black_belt.txt <==
【AWS Black Belt Online Seminar】,AWS Lambda@Edge,アマゾンウェブサービスジャパン株式会社,,
==> 20180411_AWS-BlackBelt_EC2.txt <==
【AWS Black Belt Online Seminar】,,Amazon EC2,,
==> 20180723_AWS-BlackBelt-SystemsManager.txt <==
【AWS Black Belt Online Seminar】,,
•,,
==> 20180724_Fargate_and_EKS.txt <==
【AWS Black Belt Online Seminar】,,Introduction to AWS Fargate and,,
==> 20180731_AWS_BlackBelt_S3_usecase_updates_public.txt <==
【AWS Black Belt Online Seminar】,S3ユースケース及びサービスアップデート,アマゾン ウェブ サービス ジャパン株式会社,,
==> 20180801_AWS-Blackbelt_QuickSight-update_public.txt <==
AWS Black Belt Online Seminar,Amazon QuickSight,,,
==> 20180807_AWS-BlackBelt-Well-Architected.txt <==
【AWS Black Belt Online Seminar】,AWS Well-Architected Framework,,,
==> AWS Certified Developer - Associate_2018_June_Exam_Guide_JP.txt <==
AWS 認定デベロッパー – アソシエイト(DVA-C01) 試験ガイド,,はじめに,,
==> AWS Certified Solutions Architect - Associate_Exam Guide_v1.5_FINALJP.txt <==
AWS 認定ソリューションアーキテクト - アソシエイト (新版),SAA-C01 試験ガイド,,,
==> AWS Certified Solutions Architect - Associate_Exam Sample_v1.5_FINALJP.txt <==
AWS 認定ソリューションアーキテクト - アソシエイト (2018 年 2 月開始),SAA-C01 サンプル試験,Q1.,,
==> AWS Certified SysOps - Associate_Exam Guide_FINALJP.txt <==
AWS 認定 SysOps アドミニストレーター,- アソシエイトレベル試験要覧,,,
==> AWS Certified SysOps - Associate_Exam Sample_v1_FINALJP.txt <==
アマゾン ウェブ サービス – AWS 認定システムオペレーションアドミニストレーター – アソシエイトレベル試験サンプル,Q1. Amazon RDS の操作において、AWS が責任を持って実施する管理関連タスクは次のうちどれですか?2 つ選択し,てください。,,
==> AWS Certified_Developer_associate_examsample_JP.txt <==
アマゾン ウェブ サービス – AWS 認定 デベロッパー– アソシエイトレベルサンプル試験,Q1. 次の文のうち、SQS について正しく述べているものはどれですか?,A.,,
==> AWS Storage Services Whitepaper-v9.txt <==
AWS Storage Services,Overview,A Look at Storage Services Offered by AWS,,
==> AWS-HPC-Lens.txt <==
High-Performance Computing,Lens,AWS Well-Architected Framework,,
==> AWS-RatesSystem-JP_201310.txt <==
AWSの課⾦体系,2013年10⽉,,,
==> AWS-Serverless-Applications-Lens.txt <==
Serverless Applications Lens,AWS Well-Architected Framework,,,
==> AWS_Certified_Solutions Architect_Associate_Feb_2018_Sample Questions_v1.0.txt <==
AWS Solutions Architect – Associate (Released February 2018) (SAA-C01),Sample Exam Questions,1) A company is storing an access key (access key ID and secret access key) in a text file on a custom,,
==> AWS_Certified_Solutions_Architect_Associate_Feb_2018_ Exam_Guide_v1.5.2.txt <==
AWS Certified Solutions Architect –,Associate (Released February 2018) SAA-C01 Exam Guide,,,
==> AWS_Cloud_Best_Practices.txt <==
Architecting for the Cloud,AWS Best Practices,,,
==> AWS_Risk_and_Compliance_Whitepaper.txt <==
Amazon Web Services: Risk and,Compliance,,,
==> AWS_Security_Whitepaper.txt <==
Amazon Web Services:,Overview of Security,Processes,,
==> AWS_Simple_Monthly_Calculator_Guide_jp_20150424.txt <==
AWS Simple Monthly Calculator,(簡易見積ツール),解説資料,,
==> AWS_certified_solutions_architect_associate_examsample.txt <==
AWS Certified Solutions Architect – Associate Level,Sample Exam Questions,,,
==> BestPracticesInEvaluatingELB-ja-final.txt <==
Elastic Load Balancing(ELB)を評価するためのベストプラクティス,本ドキュメントはアマゾン ウェブ サービス(以下、AWS)の Elastic Load Balancing(エラ,スティック ロード バランシング、以下 ELB)サービスの機能やアーキテクチャについて説,,
==> Best_Practices_for_Deploying_Amazon_WorkSpaces.txt <==
Amazon WorkSpaces をデプロイ,するためのベストプラクティス,ネットワークアクセス、ディレクトリサービス、セキュリティ,,
==> Well-Architected_Whitepaper_v2_JP.txt <==
AWS による優れた設計の,フレームワーク,2016,,
==> aws-overview.txt <==
Overview of,Amazon Web Services,,,
==> awsbasic20120629-120726021001-phpapp02.txt <==
AWS Basic トレーニング,,2012年8月3日,,
==> building_3tier_on_vpc_ver9.2_ja.txt <==
AWS体験ハンズオン, 〜~セキュア&スケーラブルウェブサービス構築〜~,,,
==> crs-spl.txt <==
AWS Cloud Roadshow 2016,セルフペースラボ ハンズオン,第 1 回 12:00 - 13:40,