
UNIX Cafe | 第21回
Wordから画像だけをまとめて取り出す方法
.docx をターミナルで展開して一括抽出
取材先やクライアントから Word(.docx)形式で受け取った資料。
文章ではなく、「中に入っている画像だけをブログやWeb制作で使いたい」という場面はよくあります。
しかし、
- 右クリックで1枚ずつ保存するのは面倒
- 枚数が多いと作業ミスが起きやすい
そんなときに役立つのが、ターミナルを使った画像の一括抽出です。
Mac や Linux では、.docx の中身を展開するだけで、
Wordに含まれる画像(JPEG / PNG など)をすべてまとめて取り出すことができます。
.docx の正体は「ZIPファイル」
Word の .docx ファイルは、
実は 文章・画像・設定ファイルをまとめた ZIP 形式 です。
つまり、
- 拡張子を
.zipに変更 - unzip で展開
という流れで、中身を直接確認できます。
ターミナルで画像を取り出す基本手順
STEP1:.docx を .zip にリネーム
mv sample.docx sample.zipこれは「移動」ではなく、名前を変更しているだけです。
STEP2:ZIPファイルを展開
unzip sample.zip -d output-d output→ 展開先フォルダを output/ に指定
STEP3:画像が保存されている場所
展開後、画像は次の場所に入っています。
output/
└─ word/
└─ media/
├ image1.jpeg
├ image2.png
├ image3.jpeg
…
ここにあるファイルが、
Word文書内に挿入されていたすべての画像です。
- 形式:JPEG / PNG / GIF など
- 変換なし(元の形式のまま)
.docx を直接 unzip できる場合もある
macOS では、環境によっては .docx のまま展開できます。
unzip sample.docx -d outputただし、OSや環境によって失敗することがあるため、
確実性を重視するなら .zip にリネームする方法がおすすめです。
.docx → 画像 を自動抽出するシェルスクリプト
毎回コマンドを入力するのが面倒な場合は、
スクリプト化して自動処理すると作業が一気に楽になります。
スクリプトの特徴
.docxを渡すだけで画像を抽出- ファイル名ごとにフォルダを自動作成
- 複数ファイルにも対応
スクリプトを作成してみよう
vi docx_extract_img.shスクリプト本体(コピペOK)
#!/bin/bash
# ===== .docx から画像を取り出すスクリプト =====
# 使い方:
# ./docx_extract_img.sh sample.docx
# ./docx_extract_img.sh doc_files/*.docx ←複数OK*/
# =====
# 引数がない場合
if [ $# -eq 0 ]; then
echo "使い方: $0 <docxファイル> ..."
exit 1
fi
# 1ファイルずつ処理
for file in "$@"; do
# 存在チェック
if [ ! -f "$file" ]; then
echo "⚠ ファイルが見つかりません: $file"
continue
fi
# 拡張子を除いたファイル名を取得
base=$(basename "$file" .docx)
# 出力フォルダ
outdir="${base}_images"
echo "📦 展開中: $file → $outdir"
# 出力フォルダ作成
mkdir -p "$outdir"
# docx を unzip(word/media を取り出す)
unzip -q "$file" "word/media/*" -d "$outdir"
# 画像フォルダが存在するかチェック
if [ -d "$outdir/word/media" ]; then
mv "$outdir/word/media"/* "$outdir"/
rm -rf "$outdir/word"
echo "✅ 完了!画像を $outdir/ に保存しました"
else
echo "⚠ 画像が見つかりませんでした: $file"
fi
done
スクリプトを保存する
~/docx_extract_img.sh(例として、ホームディレクトリに保存しています)
実行権限を付ける
chmod +x ~/docx_extract_img.sh単一ファイルを処理する
./docx_extract_img.sh sample.docx抽出された画像はsample_images/に入ります。
複数ファイルもOK
./docx_extract_img.sh *.docxreport.docx→report_images/notes.docx→notes_images/
など、それぞれ自動でフォルダに入ります。
出力イメージ
sample.docx
↓
sample_images/
├ image1.jpeg
├ image2.png
├ …
ここで少し休憩|よくある質問
まとめ|Word画像の一括抽出はターミナルが最速
| 操作 | コマンド |
|---|---|
| docx → zip | mv sample.docx sample.zip |
| 展開 | unzip sample.zip -d output |
| 画像場所 | output/word/media/ |
Wordを開かず、GUI操作も不要で、画像だけを最短で取り出せる方法です。
ブログ運営、Web制作、資料整理など、「地味に時間を取られる作業」を減らしたい人にとって、
とても実用的なテクニックです。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本

