
UNIX Cafe | 第21回
Wordから画像だけをまとめて取り出す方法
取材先から Word で送られてきた画像をブログに掲載したい
Wordでもらった資料から「画像だけをまとめて保存したい」。
Mac や Linux では、実は .docx ファイルをターミナルで簡単に展開することで、
画像を一括抽出(PNG/JPEG)することができます。
「1枚ずつ右クリックで保存」が不要になる便利ワザを、やさしく紹介します。
ミナちゃんユニ先生〜!
Wordファイルでもらった画像をブログで使いたいんです。でも、どうやったら取り出せるのかな?



そんな時は、ターミナルを使って .docx の中身を取り出せば楽だよ。.docx は、実は ZIP ファイルと同じ仕組みなんだ。
.docx の正体は「ただの ZIP ファイル」
実は Word の .docx は、文章や画像がいくつもの小さなファイルに分かれて、ひとまとめにされた ZIP 形式 のファイルです。だから、名前を .zip に変えるだけで中身が見えるようになるのです。
ターミナルで .docx から画像を取り出す手順
STEP1:.docx を .zip に変換する
bash
$ mv sample.docx sample.zip


mv は “移動・名前変更”コマンドだね!



そう。ここでは 名前を変えてるだけだよ☕
STEP2:ZIP を展開する
bash
$ unzip sample.zip -d output-d output … 展開先フォルダを output/ に指定



できた!outputフォルダができてるね!



うん。画像ファイルは
/word/media/ に入ってるよ。
画像の場所
output/
└─ word/
└─ media/
├─ image1.jpeg
├─ image2.png
├─ image3.jpeg
...



ここに、全部入ってる〜!やった〜!



ファイル形式は、JPEG / PNG / GIF など
文書が持っている形式そのままだよ☕
補足:.docx をそのまま unzip できる場合
macOS なら .docx のまま unzip できることもあります。ただし OS のバージョンによっては失敗することがあるため、.zip に名前を変えるほうが確実です。
bash
$ unzip sample.docx -d output


えっ、名前を変えなくてもOKなの?



そう。でもうまく行かない場合もあるので、
.zip にリネームしておく方が安心だよ☕
.docx → 画像 を自動抽出するシェルスクリプト
スクリプトで自動化してみよう



毎回 unzip するの、ちょっとめんどう…
自動でできたらいいなぁ〜



お安い御用さ☕
このスクリプトを使えば、.docx を渡すだけで画像を全部取り出してくれるよ。
スクリプトを作成してみよう
bash
$ vi docx_extract_img.sh


ファイル名は、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
スクリプトを保存する
bash
$ ~/docx_extract_img.sh(例として、ホームディレクトリに保存しています)
実行権限を付ける
bash
$ chmod +x ~/docx_extract_img.sh単一ファイルを処理する
bash
$ ./docx_extract_img.sh sample.docx抽出された画像はsample_images/に入ります。



わぁ…!フォルダ名まで整理してくれるんだね✨
便利〜!



うん。日々の作業を少しずつ楽にしていくのが、
UNIX Cafeの流儀だよ☕✨
複数ファイルもOK
bash
$ ./docx_extract_img.sh *.docxreport.docx→report_images/notes.docx→notes_images/
など、それぞれ自動でフォルダに入ります。
出力構造
sample.docx
↓
sample_images/
├ image1.jpeg
├ image2.png
├ …
ここで少し休憩|よくある質問
まとめ
| 操作 | コマンド |
|---|---|
| docx → zip に変換 | mv sample.docx sample.zip |
| ZIP の展開 | unzip sample.zip -d output |
| 画像がある場所 | output/word/media/ |
エピローグ



ターミナルだけで画像を取り出せるなんて知らなかったよ〜。
とっても便利!



Word が使えない環境でも画像だけ取り出したい時に便利だね☕
またひとつ、Unix Cafe のスキルが増えました。



うん!
今度は PDF の中から画像を取り出す方法も知りたいな!



よし、じゃあ次のメニューに追加しておこう☕✨
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本






