[前の記事]« バッチファイルでrshコマンドを使うと待機状態になる
[次の記事][XP]曜日だけを環境変数に格納するには? »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「UNIXコマンドとDOS/Windows」索引へ

unixのuniqに相当するコマンドは?

62.
unixiのuniqコマンド
2004年01月13日(火) 13時10分
ipo
初めて投稿させて頂きます。

unixのuniqコマンドと同じように重複した列は除いたファイルを
出力したいのですが、過去のログをみていたのですが、いまいち
理解できませんでした。
dosコマンドは初心者なので、イメージとしてはファイルを1行ずつ
読み込んで、変数に代入し次の行が変数と違うなら出力する
ということだと思うのですが、ご教授していただけませんか。
63.
Re:unixiのuniqコマンド
2004年01月13日(火) 14時27分
じゃく
こんにちは。

>unixのuniqコマンドと同じように重複した列は除いたファイルを
>出力したいのですが、過去のログをみていたのですが、いまいち
>理解できませんでした。
>dosコマンドは初心者なので、イメージとしてはファイルを1行ずつ
>読み込んで、変数に代入し次の行が変数と違うなら出力する
>ということだと思うのですが、ご教授していただけませんか。

OSを2000/XP系だとしてお話しします。
上で述べられていることをそのままコマンドプロンプトで
簡単に作成してみました。
--------------------------------------uniq.bat
echo off
set prev=
if not exist "%1" goto error
for /f "tokens=* delims=" %%L in ( %1 ) do call :sub %%L
goto exit
:sub
if not "%prev%"=="%*" set prev=%*&&echo %*
goto :EOF
:error
echo.
echo 表示したいファイル名を指定してください。
echo [例] uniq.bat file.txt
echo.
:exit

for文でファイルから1行を取り出し、call文でサブルーチンを
呼び出してそこで、以前と同一行かチェックしています。

95/98系ですとこのような for 文の機能がありませんので、
別途 unix like tool などのフリーソフトを使うことになるでしょう。
64.
Re2:unixiのuniqコマンド
2004年01月13日(火) 15時26分
ipo
ありがとうございます!

なんとかなりそうです。
本当に感謝いたします。
67.
Re3:unixiのuniqコマンド
2004年01月13日(火) 16時00分
じゃく
>なんとかなりそうです。
>本当に感謝いたします。

スミマセン。いまふと思い立って確認したら、
指定するテキストファイルに空行(改行のみ)が存在する場合
無視されて空行が表示されません。
(空行だとなぜか for文のdo以降が呼び出されないため)

空行が入るファイルの表示の場合は使えないサンプルであることを
ご了承のうえお使い下さい。
74.
Re4:unixiのuniqコマンド
2004年01月13日(火) 20時44分
ふぇむ
>スミマセン。いまふと思い立って確認したら、
>指定するテキストファイルに空行(改行のみ)が存在する場合
>無視されて空行が表示されません。

そういうのもあるし、一つの文字列として扱うにも制約があるので、可能ならば別のスクリプト言語(私は awk が好きですが)で実装するほうが制約も少なく簡単だと思います。awk で uniq 相当のものを書くのは簡単ですよね。
76.
Re:unixiのuniqコマンド
2004年01月14日(水) 00時35分
Hellcat
>重複した列は除いたファイルを出力したいのですが、
mtoyoさんが作成したフリーソフトSORTFコマンドでもできます。
win9xやwinMEなどのforコマンドが貧弱な場合に便利です。
参考までに…。

SORTF -uU inputfile > outputfile

この使用例は行全体をソートキーとして上昇順にソートし、重複していない行のみを出力するというものです。

SORTF.EXE
http://rd.vector.co.jp/soft/dos/util/se011547.html
77.
Re5:unixiのuniqコマンド
2004年01月14日(水) 09時40分
じゃく
完全な余談です。

>そういうのもあるし、一つの文字列として扱うにも制約があるので、可能ならば別のスクリプト言語(私は awk が好きですが)で実装するほうが制約も少なく簡単だと思います。awk で uniq 相当のものを書くのは簡単ですよね。

おお。私もawkは好きです。小回りが利きますね。
(というかスクリプト言語で、ものにできたのはこれだけ)
googleでuniq.awkって検索するとサンプルスクリプトも出てきますね。
 


 

62.unixiのuniqコマンド ipo 04/01/13(火) 13:10
63.Re:unixiのuniqコマンド じゃく 04/01/13(火) 14:27
64.Re2:unixiのuniqコマンド ipo 04/01/13(火) 15:26
67.Re3:unixiのuniqコマンド じゃく 04/01/13(火) 16:00
74.Re4:unixiのuniqコマンド ふぇむ 04/01/13(火) 20:44
77.Re5:unixiのuniqコマンド じゃく 04/01/14(水) 09:40
76.Re:unixiのuniqコマンド Hellcat 04/01/14(水) 00:35
 
 


カテゴリー「UNIXコマンドとDOS/Windows」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年01月13日 14:25に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチファイルでrshコマンドを使うと待機状態になる」です。

次の投稿は「[XP]曜日だけを環境変数に格納するには?」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート