抽出したいデーターはcccの行です。
a1
bbb 20
ccc 30
a2
bbb 20
ccc 31
a3
bbb 20
ccc 29
質問者さんの実行環境が分からないので複数のパターンを回答しておきます。
抽出だけでよいのならば秀丸などの正規表現が使えるテキストエディタで検索(秀丸では「検索→grep実行」)で「正規表現」を有効にして検索語に
^ccc.*
と入ればヒットします(自動的に一行づつ出力してくれるが、ファイル名(行数)という余計なものが付いてくる)
出力まで考えると
・コマンドプロンプトの場合→既出のfindコマンドの回答を参照
・phpでテキストファイルを処理したい場合
// ファイル読み込み
$file = file_get_contents('data.txt');
// 改行ごとに文字列を配列に格納
$text = explode("\n",$file);
$pattern ="^ccc.*";
$output = array();
for($i = 0; $i <= count($text) - 1; $i++){
if(ereg($pattern,$text[$i])){
$output[] = $text[$i];
}
}
//画面に出力
print_r($output);
//ファイルに出力
$fp=fopen("output.txt","w");
foreach ($output as $a){
fputs($fp,$a."\n");
}
fclose($fp);
コメント(3件)
grep ccc ファイル名
これで、cccを含む行だけを出力します。
しかし、質問の情報が足りないので
これではダメなのかもしれませんが、
いかがでしょうか
awk 'NR % 3 == 0 {print}' ファイル名
http://www.atmarkit.co.jp/ait/articles/0103/01/news001.html
Windows 2000 活用講座 Windows 2000 コマンドライン徹底活用:
第6回 findコマンド (1/2)
例えば質問文の文字列をa.txtに保存したとして
>>
C:\>find "ccc" a.txt
---------- A.TXT
ccc 30
ccc 31
ccc 29
C:\>
<<
ファイルに落としたい場合は標準出力へリダイレクトしてください。
>>
C:\>find "ccc" a.txt > b.txt
C:\>type b.txt
---------- A.TXT
ccc 30
ccc 31
ccc 29
C:\>
<<