カテゴリー
Windows10でも awk/sed が使いたいと思ったときのBusyBox
※ 当ページには【広告/PR】を含む場合があります。
2020/02/02
唐突ですが、皆さんは
このソフトを利用すると、最低限Linuxで動作するユーティリティコマンド群をインストールもなしにお手軽にwindowsでも利用できるようになります。
そんな便利な
BusyBox
awk
sed
個人的に普段はwindowsをほとんど仕事で使わない派だったのです。
数年前にエンジニアから公務員に華々しく転職した元同僚からの相談が、「お役所の仕事でエクセルファイルと何時間もにらめっこするの苦痛しかたない…庁舎のwindowsパソコンでも、csvファイルのようなテキストデータの処理を自動化する方法はないのか」という内容でした。
そのときBusyBoxを簡単にwindows上で動かせることを知りませんでしたので、
windowsでもawkが使えればなぁ...
今回の内容は、ぜひ、エクセルの煩わしい手作業の業務を、お手軽に自動化させたい役場の中の方々に利用をオススメしたいテクニックをコツコツと紹介していくコーナーです。
最初の一回目なので、windows10への導入に関して、解説しましょう。
BusyBoxをダウンロード
まずは
ちなみに、32bit用と64bit用の2つが用意されているようです。
busybox.exe:
32bit用windows向け
busybox64.exe:
64bit用windows向け
最近は、Windowsも64bitが多い気がしますが、お手元のパソコン環境に応じてダウンロードしましょう。
対応しているコマンド
ざっとbusyboxで利用できるコマンドを挙げてみます。
acpid, addgroup, adduser, adjtimex, ar, arp, arping, ash,
awk, basename, beep, blkid, brctl, bunzip2, bzcat, bzip2, cal, cat,
catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot,
chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab,
cryptpw, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod,
devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname,
dos2unix, dpkg, du, dumpkmap, dumpleases, echo, ed, egrep, eject,
env, envdir, envuidgid, expand, expr, fakeidentd, false, fbset,
fbsplash, fdflush, fdformat, fdisk, fgrep, find, findfs, flash_lock,
flash_unlock, fold, free, freeramdisk, fsck, fsck.minix, fsync,
ftpd, ftpget, ftpput, fuser, getopt, getty, grep, gunzip, gzip, hd,
hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id,
ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, inotifyd,
insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink,
iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd,
last, length, less, linux32, linux64, linuxrc, ln, loadfont,
loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr,
ls, lsattr, lsmod, lzmacat, lzop, lzopcat, makemime, man, md5sum,
mdev, mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat,
mknod, mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint,
mt, mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od,
openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress,
pivot_root, pkill, popmaildir, printenv, printf, ps, pscan, pwd,
raidautorun, rdate, rdev, readlink, readprofile, realpath,
reformime, renice, reset, resize, rm, rmdir, rmmod, route, rpm,
rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum, sha256sum,
sha512sum, showkey, slattach, sleep, softlimit, sort, split,
start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv,
svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac,
tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd,
time, timeout, top, touch, tr, traceroute, true, tty, ttysize,
udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq,
unix2dos, unlzma, unlzop, unzip, uptime, usleep, uudecode, uuencode,
vconfig, vi, vlock, volname, watch, watchdog, wc, wget, which, who,
whoami, xargs, yes, zcat, zcip
参考:
本当にいたれりつくせりのツールで、これだけで
最小のLinux
基本的な使い方
まずは、適当な空フォルダ(下の例では
busybox
busybox.exe
busybox64.exe
ついでに、簡単なcsvファイルも
test.csv
1,2,3
4,5,6
7,8,9
すると、以下のようにしておきます。

おめでとうございます。
たったこれだけで、windowsでawkが利用できるようになりました。
あとは
PowerShell
コマンドプロンプト
busybox.exe
bash
PS C:\Users\USER\Desktop\busybox> .\busybox64.exe bash
~/Desktop/busybox $ ls
busybox64.exe test.csv
ちゃんと、シェルがインタラクティブモードで起動しているようです。
それでは肝心のawkの動作確認をやってみます。
PS C:*****\busybox> .\busybox64.exe bash
~/busybox $ cat test.csv
1,2,3
4,5,6
7,8,9
~/busybox $ cat test.csv | awk -F "," '{print $1}'
1
4
7
...バッチリ動作しております。
まとめ
windowsでも、簡単にawkできることが分かりました。
これで個人的にはもうエクセルVBAで作ったデータ成形マクロとはおさらばだぜ、といきたいところです。
もちろん相変わらずエクセルは万人受けする状況で、全ての人がbusyboxを使えるわけではないのですが、windows環境でも究極の業務効率化を目指すならbusyboxはもう手放せないと感じます。
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー