読者です 読者をやめる 読者になる 読者になる

くんすとの備忘録

プログラミングや環境設定の覚え書き。

BATファイルでuniqコマンドを実装

BAT Windows

これは、コマンドプロンプト(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


いじょ。

広告