BATファイルでuniqコマンドを実装
これは、コマンドプロンプト(cmd.exe) Advent Calendar 2015 - Qiitaの21日目の記事です。
※Windows 10 Home 64bit 搭載のcmd.exeにて検証を行っています。
BATファイルを使って簡易版uniqコマンドを作成します。
uniq.bat
@echo off for /f "usebackq tokens=* delims=" %%i in (`findstr .*`) do call :sub %%i goto :EOF :sub if not "%PREV%"=="%*" ( set PREV=%* echo %* ) exit /b
標準入力の1行1行をサブルーチンに渡し、サブルーチン内で「ひとつ前の行の値」を保持しているだけ、という単純な作りです。
使用例
入力ファイル (aaa.txt)
aaa bbb ccc ccc cccccc bbb
実行
C:\usr\home>type aaa.txt | uniq aaa bbb ccc cccccc bbb C:\usr\home>type aaa.txt | sort | uniq aaa bbb ccc cccccc
いじょ。