![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
スクリプトの存在するディレクトリ
/home/XXXX/XXXX/log.pl(完全に固定のディレクトリ)
csvファイルの存在するディレクトリ
/home/XXXX/XXXX/XXXX/****/YYMMDD.csv(Xは固定*は不定)
crontabでCSVファイルを
/home/XXXX/XXXX/XXXX/****/
内のcsvをすべて読み込み時間が古いものを下に
新しい物を上にして
/home/XXXX/XXXX/XXXX/****/fix.csv
として新たなファイルを生成する。
既に読んだことのあるYYMMDD.csvファイルは再度
fix.csvに書き込まない
次のディレクトリがあるならばディレクトリ内のファイルを読み込み同様の動作をする
以前教えていただいたスクリプトを元にここまでできました。
logファイルに書き込まれている名前のファイルは読み込まないようにしたいのですが
どのようにすればいいのでしょうか
▽▽以下スクリプト
chdir'/home/XXXX/XXXX/XXXX/';
@files1=reverse(@files1);
chomp(@files1);
$file1=shift(@files1);
until(("" eq $file1)){
@parts1=split(/\//, $file1);
open(READLOG,"./$parts1[1]/log");
close(READLOG);
open(READFILE,"<./$parts1[1]/$parts1[2]")||die "1$!";
@f1=<READFILE>;
close(READFILE);
@f=sort(@f1);
open(WRITEFILE,">>./$parts1[1]/fix.csv")||die "3$!";
foreach $str (@f){
print WRITEFILE "$str";
}
close(WRITEFILE);
$file1=shift(@files1); #次のファイル名の取り出し
open(BKFILE,">>./$parts1[1]/log")||die "3$!";
print BKFILE $parts1[2]."\n";
close(BKEFILE);
}
△△以上
No.2ベストアンサー
- 回答日時:
すいません、続きです。
これではダメでしょうか?
$mypath = "D:\\××××\\××××\\";
$d= `dir /B $mypath*.csv`;
@list=split (/\n/,$d);
foreach $d (@list){
$fn = $mypath.$d;
open (FILE,$fn)or die "Failed to open a $d\n";
while ($record = <FILE>) {
chomp $record;
@array = split /,/, $record;
open (OUT,">>all.csv");
print OUT join(",",@array)."\n";
close OUT;
}
close FILE;
}
この回答への補足
説明不足で申し訳ありません
OSはLinuxです
固定のディレクトリが途中まであるのですが
途中から動的に生成されるディレクトリがあるので
ディレクトリを決め打ちで指定することができません
よってfindコマンドをうつ必要性があると思った次第です。
動的に生成されているディレクトリに数個のcsvがあり
それを取りまとめるfix.csvファイルを
それぞれのディレクトリに1個づつ
生成するといったイメージです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) Python CSVファイルについて 2 2023/01/04 21:19
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- デスクトップパソコン outlookのメール:outlook.comの表示方法を教えて下さい 1 2022/03/28 00:30
- Android(アンドロイド) QuickPik GalleryでSDカードの「root」のディレクトリが出てこない 3 2022/07/11 14:43
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- PHP 値の取り出し方について教えて下さい。 1 2023/03/31 13:30
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batファイルでrenameができませ...
-
FindFirstFileとFindNextFileで...
-
Rubyでフォルダ内にあるファイ...
-
requireで同じライブラリを複数...
-
エクセルVBAで素数だけを出力す...
-
コマンドプロンプトからperlを...
-
ファイル出力の改行コードをLFに
-
ドメインからIPアドレスあるい...
-
fgets で値が取得できない
-
実行されない
-
fopen64について
-
CSV出力に関して
-
ファイルのアップロード
-
動かなくなったのでJavaソース...
-
Firefox で file:// で始まる U...
-
ファイル全てを .xlsm に変更し...
-
perlでIEのクッキーを削除したい
-
FTP接続時失敗時、接続先名をcs...
-
csvファイル改行コードの置換に...
-
ファイルの一部を別のファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
C言語でファイル名を取得
-
FindFirstFileとFindNextFileで...
-
パスから最後のディレクトリだ...
-
vba dir の相対パス
-
readdir()で得られるファイル・...
-
Windowsで複数のファイルを同じ...
-
エラー 'dir.h' : No such fi...
-
ディレクトリ名を取得したい
-
dos変数の%~dp0は powershellで...
-
一定時間が経過したフォルダの削除
-
find関数が1階層(カレントディ...
-
複数ファイルの読み込みについて
-
ディレクトリ内CSVデータをすべ...
-
テキストファイルの結合
-
perlのNet::FTPで、ファイルか...
-
ファイル名の変更
-
chdirがうまくできない
-
下のディレクトリ(3つ)に含ま...
-
コマンド「dir」の結果を、テキ...
おすすめ情報