[前の記事]« WinXP:コマンドプロンプトのプロパティの設定について
[次の記事]NT系:スペースを含むコマンド出力結果を1つの環境変数に格納する »

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

▲カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ
▲カテゴリー「FOR /F」索引へ

テキストファイルからテキストを取り出す方法

881) テキストファイルからテキストを取り出す方法 RORO 2003/11/19(水) 21:00


教えていただけませんか??
OSは、win2Kです

あるテキストファイル(=TEST.TXT)があるります。
そのファイルの各行の先頭から、TABキーが押されているところ(ひとつの単語)まで、抜き取って、ほかのファイルへコピーしたいのですが、
初心者なもので、いまいちコマンドがわかりません。
FIND、FINDSTR等調べてみたのですが、なかなかうまくいきません。
このプログラムをDOSコマンドで作成することは、可能なんでしょうか??


882) Re:テキストファイルからテキストを取り出す方法 ふぇむ 2003/11/20(木) 13:43


>あるテキストファイル(=TEST.TXT)があるります。
>そのファイルの各行の先頭から、TABキーが押されているところ(ひとつの単語)まで、抜き取って、ほかのファイルへコピーしたいのですが、
>初心者なもので、いまいちコマンドがわかりません。

めっちゃシンプルに書くならば。諸前提・諸制約(空白文字のワードはとれない、最後に空行入っちゃう、など)ありますが、単純に空白文字区切りの1ワード 目を取り出すだけということなら以下のようにかけます。コマンドラインからだと、カレントディレクトリにその TEST.TXT がある状態で、

@for /F %a in ( TEST.TXT ) do @echo %a

上記を > nukitori.txt みたいなリダイレクトの形で好きなファイルへ格納できますね。

しかし個人的にはこの手の処理には awk のスクリプトを組むことをお勧めします。例えばシンプルにはこんな感じでしょうか。

gawk "{ print $1;}" TEST.TXT

または awkスクリプトを別にして

gawk -f pickup.awk TEST.TXT

pickup.awkの内容:
{ print $1; }


とか。



887) Re:テキストファイルからテキストを取り出す方法 Hellcat 2003/11/20(木) 22:11


フリーソフトizgrepを使った例

izgrep -hm ^(.)+\t test.txt > foo.txt

DOSのソフトですが、Win2000でも動きました。
全角文字にも対応しています。

izgrepは↓にあります
http://www.vector.co.jp/soft/dos/util/se004975.html

this article refers Vector Soft Library..

888) Re2:テキストファイルからテキストを取り出す方法 RORO 2003/11/20(木) 22:47


みなさんどうもありがとうございます。
無事に解決することができました。
コマンド的には、
for /F "tokens=1 usebackq delims= " %%i (test.txt) do(
echo %%i ) > aaa.txt

としたら、できました。
DOSのコマンドとは、奥が深いですね。
どうもありがとうございました。



896) Re2:テキストファイルからテキストを取り出す方法 Hellcat 2003/11/21(金) 21:47


#887の訂正です。

izgrep -hm ^(.)+\t test.txt > foo.txt
としましたが、行頭を表すサーカムフレックスをエスケープする必要がありました。
以下のように訂正します。
izgrep -hm ^^(.)+\t test.txt > foo.txt

p.s.
なんだか顔文字のようになってしまいましたが、まじな正規表現です。
 
 


カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ
カテゴリー「FOR /F」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2003年11月19日 16:36に投稿されたエントリーのページです。

ひとつ前の投稿は「WinXP:コマンドプロンプトのプロパティの設定について」です。

次の投稿は「NT系:スペースを含むコマンド出力結果を1つの環境変数に格納する」です。

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

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