今日のコマンド@pdftotext

GUIでもできるのですが、コマンド操作のほうが
ずっと楽ちんなので今日も使ったのが【pdftotext】です。
ネーミングの通りpdfファイルからtextを作成します。

test.pdfからtextを作成する時は

$ pdftotext test.pdf

これでpdfファイルと同じディレクトリにtest.txtが
作成されます。

テキストファイルを作成せずに、単に標準出力
(ターミナル上)で表示さたいときは、【-】という
引数を付します。

$ pdftotext test.pdf –

CentOS7
CPU
Memory
SWAP
HDD

Core2Quad Q9650
DDR2  8GB  800MHz
1TB x 3 RAID5

Partition
md120
md121
md122
md123
md124
md125
md126
md127

sda 
Sda10(0)
Sda2(0)
Sda7(0)
Sda6(0)
Sda8(0)
Sda3(0)
Sda9(0)
Sda5(0)

enp3s0
enp4s1

Sdb
Sdb9(1)
Sdb1(1)
Sdb6(1)
Sdb5(1)
Sdb7(1)
Sdb2(1)
Sdb8(1)
Sdb3(1)

r8169
mii
192.168.**.17/24
e1000
Intel pro1000
219.117.***.192/28
e1000
Intelpro1000
36.3.***.180/32

sdc
Sdc9(3)
Sdc1(3)
Sdc6(3)
Sdc5(3)
Sdc7(3)
Sdc2(3)
Sdc8(3)
Sdc3(3)

Size
10GB
1700GB
10GB
20GB
4GB
50GB
512MB
50GB

Mount point
/tmp
/home
/opt
/var
SWAP
/
/boot
/usr

on board
1000Mbps(未使用)
PCIe 下側
00:07:e9:1a:00:5c
Intel 1000Mbps
gw 219.117.***.193
PCI 上側
00:1d:7d:08:ea:1b
(pppoe)
Intel 1000Mbps

上記の内容はスタンバイしているサーバーの予備機の
中身を忘れないように書いたものですが、その中から
RAIDディバイスのみを表示させたい場合、通常のテキストと
同様にパイプを立てて渡してやり、その中から抽出します。

mainte@main-u:~$ pdftotext test.pdf – | grep md
md120
md121
md122
md123
md124
md125
md126
md127

ヘルプ(-h)で調べると他の引数もたくさんありますが、
拙生はほとんど使ったことがありません。
1ページ目だけをコンバートする【-f】とかくらいですね。

気に入らないのは*.pdfというワイルドカードが使えないので、
一つづつ調べることになります。
面倒くさくないように同一ディレクトリ内にある全ての
PDFファイルから、キーワードが含まれる行を抽出できる
シェルスクリプトのひな形を作ってあります。

#!/bin/bash

for pdf in $(find /home/user -name “*.pdf”):
do
echo “キーワードを検索中 $pdf”
pdftotext $pdf – | grep md
done

/home/user 自身のホームディレクトリを検索
      (userは適時変更してください。)
md     抽出したいキーワード (適時変更してください。)

スクリプトをtest.shでユーザーディレクトリ等に保存したなら

$bash test.sh

これで、/home/userにある全てのPDFファイルから、
mdというキーワードが入っている行を抽出し表示します。
こいつのパスとキーワードを書き換えて使っていて、
一手間かければもっとスマートにできますが、これでも特に
不便が無いので。。。

知っておくと便利なコマンドの一つです。

HOME

おすすめ