gooポイントが当たる質問投稿キャンペーン>>

UNIX系でいう「cutコマンド」的なコマンドはWindowsコマンドに存在しないのでしょうか?
大容量のテキストファイルを文字を表示できる形で分割したいのですが。。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

参考URL先のツール群にも cut.exe が含まれています。



外部のツールに頼りたくないなら、
Windows Xp なら「ヘルプとサポート」から For について調べ、
/F オプションを使ってあなたの望む作業ができないか、
検討してみてください。

参考URL:http://unxutils.sourceforge.net/
    • good
    • 0
この回答へのお礼

つい先ほど外部ツールにて出来ました。

情報ありがとうございました。

お礼日時:2007/06/12 12:49

ごめん TYPEは cat だね・・・oTL

    • good
    • 1

TYPE

    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2007/06/12 12:48

こんにちは。



 DOSコマンドでcutに相当するものは無いと思います。
 下記サイトをご参照下さい。
  http://www.jaist.ac.jp/~fujieda/cygwin/
 Cygwinをインストールして使ってみたらいかがですか?

では。
    • good
    • 0
この回答へのお礼

お礼が遅くなりスイマセンでした。

サイトのほう参考にさせていただきます。

ありがとうございました。

お礼日時:2007/06/12 12:47

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q特定の列の抽出

CSVファイルがあり特定の列を抽出したいんですが、excelが入ってなくマクロ(VB)が使用できない為、そのような処理をバッチで処理することは可能でしょうか?教えてください。ちなみに抽出条件は日付です。

Aベストアンサー

VBScript版のサンプル
(ハイフン)以下の部分をcollect.vbsのように名前を付けたとしたら
CScript /nologo collect.vbs < data.csv > outdata.txt
の様に実行します。
-----------------------------------------------------------
dim d, str, data, dateData
dim StdIn, StdOut
Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut
d=Date

Do While Not StdIn.AtEndOfStream
str = StdIn.ReadLine
data = split(str, ",")
dateData = split(data(0)) 'data書式:Sun May 16
if UCASE(dateData(0)) = UCASE(WeekdayName(Weekday(d),true)) and _
UCASE(dateData(1)) = UCASE(MonthName(Month(d),true)) and _
UCASE(dateData(2)) = UCASE(DatePart("d", d)) then
StdOut.WriteLine data(2)
end if
Loop

'MonthNameの英語のみ版
'標準のMonthNameは、システムの設定(言語)で変わる
function MonthName( n , flag)
dim name

name= Array( _
"January", "February", "March", "April", "May", "June", _
"July", "August", "September", "October", "November", "December")
if flag then
MonthName=left(name(n-1),3)
else
MonthName=name(n-1)
end if

end function

function WeekdayName( n , flag)
dim name

name= Array( _
"Sunday", "Monday", "Tuesday", "Wednesday", _
"Thursday", "Friday", "Saturday" )
if flag then
WeekdayName=left(name(n-1),3)
else
WeekdayName=name(n-1)
end if

end function

VBScript版のサンプル
(ハイフン)以下の部分をcollect.vbsのように名前を付けたとしたら
CScript /nologo collect.vbs < data.csv > outdata.txt
の様に実行します。
-----------------------------------------------------------
dim d, str, data, dateData
dim StdIn, StdOut
Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut
d=Date

Do While Not StdIn.AtEndOfStream
str = StdIn.ReadLine
data = split(str, ",")
dateData = split(data(0)) 'data書式:Sun May 16
...続きを読む

Qバッチでcsvファイルの指定のカラムを編集したい

バッチでファイルの編集をしたい

バッチファイルを使用して、csvファイルの読み込み~編集を行いたいと思っております

元ファイル:TEST_DATA.csv
内容:
111,222,333,444,555
123,456,789,321,987


上記のcsvファイルを読み込み、
・5カラム目が987ならば3カラム目を654に変更する
という処理を実行させたいのですが、
どのように行えばよいのでしょうか?

現在考えていることは、
1.for文を使用して指定のカラムを抜く(3カラム目と5カラム目を抜く))
2.5カラム目の値をif条件に指定し、合致した場合、抜いた3カラム目の変数に654を入れる
3.654に変更した変数を3カラム目の値として入れる

という順番で行えばいいと思っているのですが、
下記まで行ったところで行き詰ってしまいました

for /F "tokens=3,5 delims=," %%i IN (TEST_DATA.csv) DO @(if %%j==987 set %%i=654 echo %i %j )



お分かりになられる方、ご教授願えませんでしょうか

バッチでファイルの編集をしたい

バッチファイルを使用して、csvファイルの読み込み~編集を行いたいと思っております

元ファイル:TEST_DATA.csv
内容:
111,222,333,444,555
123,456,789,321,987


上記のcsvファイルを読み込み、
・5カラム目が987ならば3カラム目を654に変更する
という処理を実行させたいのですが、
どのように行えばよいのでしょうか?

現在考えていることは、
1.for文を使用して指定のカラムを抜く(3カラム目と5カラム目を抜く))
2.5カラム目の値をif条件に指定し、合致した場合、抜...続きを読む

Aベストアンサー

5カラムまであるとして、

for /f "tokens=1-5 delims=," %%A in (TEST_DATA.csv) do (
if %%E == 987 (echo %%A,%%B,654,%%D,%%E) else (echo %%A,%%B,%%C,%%D,%%E)
)

もっと他の条件があれば、さらに複雑な処理になります。

Q巨大なCSVの加工(指定列のみの抽出)について

巨大なCSVの加工(指定列のみの抽出)について

下記のような構成のCSVファイルがあります。

"ID","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0001","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0003","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0004","a","b","c","d","e","f","g","h","i","j","k","l","m"




例えば、
ここから"ID"列と"c"列と"f"列のみ抽出して新たなCSVファイルで保存。
という処理を行いたいのですが、行数が5000万行近くあり、ファイルサイズが80GB程あるので
エクセルはおろかアクセスでも開くことができません。
テキストエディタの秀丸64bit版なら開くことができますが、指定列の抽出方法が分かりません。
秀丸のマクロでもVBSでも良く、また膨大な待ち時間がかかっても構わないので実現する方法について
お知恵をお貸しください。

巨大なCSVの加工(指定列のみの抽出)について

下記のような構成のCSVファイルがあります。

"ID","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0001","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0003","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0004","a","b","c","d","e","f","g","h","i","j","k","l","m"




例えば、
ここから"ID"列と"c"列と"f"列のみ抽出して新たなCSVファイルで保存。
という処理を行いたいのですが、行数が5000万行近くあり、ファイルサイズが80...続きを読む

Aベストアンサー

"ID","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0001","a","b","c","d","e","f","g","h","i","j","k","l","m"
扱いやすいように仕向けるのも手段の一つ。
"ID00","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0001","a","b","c","d","e","f","g","h","i","j","k","l","m"
固定長になるものであれば
C列相当は16文字目から3バイト
F列相当は28文字目から3バイト

実際は固定長ではないのだろうが、
プログラムができるのなら、
そのプログラム技術で取り込みやすいデータに
加工することもできるのではないか。そういう工夫できることはないか。
最終目的でなくても何かできないか探してみる。
・・・のキーワードの後20バイトにC列とF列が
含まれているはず、となればその20バイトだけ抜き出すことで
扱うサイズがグッと減る。
工夫したければ、何か規則性を探す。

1行ずつ読み込んで判定を繰り返すプログラムで十分かと思います。

エクセルにろアクセスにしても
シートやテーブルに格納するだけが手段ではない。
VBAを使えばファイルI/O操作はできます。

"ID","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0001","a","b","c","d","e","f","g","h","i","j","k","l","m"
扱いやすいように仕向けるのも手段の一つ。
"ID00","a","b","c","d","e","f","g","h","i","j","k","l","m"
"0001","a","b","c","d","e","f","g","h","i","j","k","l","m"
固定長になるものであれば
C列相当は16文字目から3バイト
F列相当は28文字目から3バイト

実際は固定長ではないのだろうが、
プログラムができるのなら、
そのプログラム技術で取り込みやすいデータに
加工するこ...続きを読む

Qバッチでテキストファイルから任意の行のみ取得したい

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数Textに入れる(set Text=222)
4.変数Textを使用し色々処理をする
-----------------------------------------
コレを繰り返します。
2と4は同じ動作ですので、行数のカウンタを設定しループさせる予定です。
n行目を全て取り出す方法がわかれば行けると思うのですが、
どうも見つかりません。ご存知の方がいればお教え願いたいと思います。

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数T...続きを読む

Aベストアンサー

No3ですが、たぶん提示したスクリプトを見ると、ある事に気がつくはず?

findstr /n /r "." a.txt | findstr /r "^3:"

で3行目を表示してくれます。え!? それだけ。そうなんです

ただ、あと、先頭の”3:” をどうやって切り離すか? と言う問題にぶつかる。さらにファイルに先頭に”3:”があった場合、どうするのか? さらに、findstr の正規表現の動作が??? 表示すれるのはいいが、変数にどうやってセットするのか?

となる。結局 for 文を使いまわす事になります。

まあ、適当に改変して、上記の問題を解決してください。

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

Qテキストファイルから最終行の抽出

テキストファイルに出力された内容のうち、
最終行のみ抽出し、他のテキストファイルに
落とし込みたいと考えています。

DOSコマンドを使用して実現したいと思うのですが
良い方法などございましたら、ご教授ください。

宜しくお願い致します。

※OSはWindows Server 2003を使用しています。

Aベストアンサー

98SEから2003までのすべてのWindowsに標準搭載されているコマンドでFORと>(リダイレクト)を使って出来ます。

FOR /F "TOKENS=1*" %A IN ([元ネタファイル名]) DO ECHO %A > [出力先ファイル名]

 (大カッコ([ ])は必要ありませんが、普通のカッコ( () ) は必要です。)

 元ネタのファイルサイズが大きかったら少々思い処理になるかもしれませんが、所詮テキストファイルですので、極端に時間がかかるものでもないでしょう。

 なお、元ネタのファイルはSVS形式などのファイルだと思いますが、そうだとするとフィールドの区切り文字をそのデータ内に含まれないものにするといいですね。FORのなかに" "で囲まれた部分がありますが、そこに 「delims=...」などとデータ内に無い文字列を指定します。"TOKENS=1* delims=..."というようにTOKENSとはスペース区切りで追加します。
(今回、元ネタのデータがどういうものか分からないのではっきりとした答えを書きようがありません。データの形式によっては例外処理対応をする必要もあります。

 バッチで組むならもっと軽くする方法はありますね。なお、その際、FORの内部変数を%%Aとする必要がありますので気をつけましょう。今回はコマンドラインでということですので、コマンドライン1行で出来るものとしています。

98SEから2003までのすべてのWindowsに標準搭載されているコマンドでFORと>(リダイレクト)を使って出来ます。

FOR /F "TOKENS=1*" %A IN ([元ネタファイル名]) DO ECHO %A > [出力先ファイル名]

 (大カッコ([ ])は必要ありませんが、普通のカッコ( () ) は必要です。)

 元ネタのファイルサイズが大きかったら少々思い処理になるかもしれませんが、所詮テキストファイルですので、極端に時間がかかるものでもないでしょう。

 なお、元ネタのファイルはSVS形式などのファイルだと思いますが、そう...続きを読む

Qコマンド実行結果を環境変数に代入する方法ありますか

下記のとおりfindコマンドを実行すると結果が表示されます。
findコマンドの実行結果を直接環境変数に代入したいのですが、
できますでしょうか。
できれば「5」だけを環境変数に代入したいです。
よろしくお願いします。

C:\tmp>find /C "OPEN" aaa.txt

---------- AAA.TXT: 5

Aベストアンサー

バッチファイルとして書くならこんな感じですね。

@echo off

for /f "tokens=3 delims= " %%a in ('find /C "OPEN" aaa.txt') do set RESULT=%%a

echo [%RESULT%]

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Qバッチファイル 文字列にスペースがある場合

for /f %%A in ('dir /b /s c:\a aa*.pdf') do copy "%%A" D:\

これはcドライブのa aaというフォルダ名の中を検索するコードですが、
フォルダ名にスペースがあるため、うまく動きません。

"a aa"のように""で囲ってみましたが、駄目でした。

どうすれば良いのか、教えていただきたいので、お願いします。

Aベストアンサー

for /f %%A in ('dir /b /s c:\"a aa"\*.pdf') do echo copy "%%A" D:\
のようにecho でどのようなコマンドが実行されているか確認しましょう。

この記述ではdirコマンドで表示されるパスの中に空白があるため %%A には空白までの文字列しか代入されません。
以下のように修正して試してみてください。

for /f "delims=" %%A in ('dir /b /s c:\"a aa"\*.pdf') do copy "%%A" D:\

Qtxtファイルから特定の文字列が書かれた行だけを取得や削除するソフト

txtファイルで
特定の文字列が書かれた行だけを
取得や削除するソフトや方法を探しています。
フリーで無いなら、シェアウェアなどになってもかまいません

例えば
(12)と書かれた文字列がある行だけを抜きだしたり
逆に(12)と書かれた文字列がある行だけを削除したり
したいです。

そのソフトの操作方法も教えてくださると助かります。

では、回答を心よりお待ちしております。

Aベストアンサー

NoEditor
http://www.vector.co.jp/soft/winnt/writing/se300436.html

というフリーのテキストエディタをインストールすると、YokkaGrepというソフトがセットでインストールされます。

検索ディレクトリ、検索文字列(正規表現も可)、ファイル名(ワイルドカードで複数のファイルの検索も可)などをセットして検索できます。

検索結果をテキストファイルやcsvファイルに出力することや、検索文字列を含む行を削除などの機能もあります。

grepで検索すると、他にも似たような機能のソフトがあると思いますが、NoEditor付属のYokkaGrepは、お勧めです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング