data.txtというファイルがあります。下記のような感じです。
2005/12/01,0:40:55,7.8
2005/12/02,0:41:55,7.8
2005/12/03,0:42:55,7.8
2005/12/04,0:43:55,7.3
2005/12/05,0:44:55,7.3
2005/12/06,0:45:55,7.8
2005/12/07,0:46:55,7.8
2005/12/08,0:47:55,7.8
・
・
です。
たとえばこの中から検索値(yyyy/mm/dd)2005/12/01を含む行から2005/12/04を含む行の間すべてを読み出してsend.txtというファイルに保存する方法を教えてください。
検索値が2005/12/01と2005/12/06だとするとsend.txtは下記のようになります。
2005/12/01,0:40:55,7.8
2005/12/02,0:41:55,7.8
2005/12/03,0:42:55,7.8
2005/12/04,0:43:55,7.3
2005/12/05,0:44:55,7.3
2005/12/06,0:45:55,7.8
検索値の変数は前が$nameで後が$name2です。
No.1ベストアンサー
- 回答日時:
# こんなんどうでしょう。
open DATA, "< data.txt";
open OUT, "> send.txt";
my $name = '2005/12/01';
my $name2 = '2005/12/06';
$name =~ s{/}{}g;
$name2 =~ s{/}{}g;
foreach (<DATA>){
my $date = (split(',',$_))[0];
$date =~ s{/}{}g;
if ($date>=$name&&$date<=$name2){
print OUT $_;
}
}
close DATA;
close OUT;
No.3
- 回答日時:
#2のプログラムは、一行ごと違う日付であると想定していることに注意。
2005/12/06,0:45:55,7.8
2005/12/06,0:45:56,7.8
のように終わる日付が複数有る場合、
一つめで書き出し終了してしまいます。
No.2
- 回答日時:
$name="2005/12/01";
$name2="2005/12/06";
open(IN, "data.txt");
open(OUT, ">send.txt");
while(<IN>){
print OUT if /$name/../$name2/;
}
close(OUT);
close(IN);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- その他(ソフトウェア) 一太郎付属の”全件検索”ツールの不具合 3 2023/07/25 15:03
- 法人税 電子帳簿保存法について 1 2022/04/07 11:17
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(コンピューター・テクノロジー) Power Shellコマンドで作成日時を一括シフトする方法 3 2022/10/21 12:37
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Windows 10 Windows10 ファイル名と期間でファイルを検索するにはどうすればいいか 3 2023/06/07 14:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonでegrep機能をつかいたい
-
ifstream を利用した1行分のテ...
-
Perlによるディレクトリ内の連...
-
Visual Basicを使って三平方の...
-
MATLABでカーブフィットしたデ...
-
Pythonでテキストを行数指定し...
-
テキストファイルの各行を配列...
-
一行だけ読込
-
エクセルVBA コードが同じでも...
-
ExcelをCSV書き出す場合のシー...
-
空白文字 \\f と\\v の違いに...
-
python renameについて
-
batファイルでrenameができませ...
-
Perlで特定行から特定行までを...
-
HTTP::Request::Common qw(POST...
-
close()で例外が投げられる理由
-
openした後、closeしないでプロ...
-
VBAでCSVファイルの特定行を書...
-
バッチファイルの作り方(CSV→...
-
パスから最後のディレクトリだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名を複数個配列で確保...
-
一行だけ読込
-
Pythonでegrep機能をつかいたい
-
ifstream/ofstream について
-
「パスが見つかりません」とい...
-
shellのコマンド deffの差分の...
-
Perl エラーログを指定の場所...
-
MATLABでカーブフィットしたデ...
-
ifstream を利用した1行分のテ...
-
perlでCSVをソートする方法につ...
-
system関数と引数について
-
C++でのテキストファイル読み込...
-
連番のファイルを何個も開きたい
-
[perl] もっとシンプルに改良、...
-
Perl 重複カウント 上位3名
-
Pythonで非日本語のUnicode文字...
-
Pythonでテキストを行数指定し...
-
while文がうまく動かない
-
Fortranで1行飛ばして読み込む方法
-
あるファイルないから日付指定...
おすすめ情報