My requirement is to read the file names from dataset and create a master dataset by appending all the files. I 've tried this via follow code, but could not succeed. I would request someone to guide me to complete this task. Reading the filenames as below. data dirlist;
infile cards truncover;
input file_names $300.;
cards;
'/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-30_tmptcmlva2_19142.log'
'/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-29_tmptcmlva2_19142.log'
'/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-28_tmptcmlva2_19142.log'
;
run; Now I need to read and append all the files to create one master dataset. So I wrote a code as below. However, I could not succeeed. It seems there was some error in my either infile statement or do loop which I'm unable to figure out. DATA output_data_set;
set dirlist;
/* read the file references in variable called file_names */
INFILE IN dsd truncover FILEVAR = file_names END = end_of_file LRECL=32000;
DO WHILE (end_of_file = 0);
input var : $ 3000.;
/*filename=file_names;*/
var1 = _infile_;
if var1 = :'201';
Date_TimeStamp= scan(var1,1," ");
Status = scan(var1,2," ");
Processid = scan(var1,3," ");
userid = scan(var1,4," ");
Details = scan(var1,-1,'-');
drop var var1;
OUTPUT;
END;
RUN; There are records in my input files,but my code could not read it for some reasons. Please guide me. Log: 4 data dirlist;
5 infile cards truncover;
6 input file_names $300.;
7 cards;
NOTE: The data set WORK.DIRLIST has 3 observations and 1 variables.
NOTE: DATA statement used (Total process time):
real time 0.04 seconds
cpu time 0.00 seconds
7 !
11 ;
12 run;
2 The SAS System 08:36 Friday, September 11, 2015
13
14 DATA output_data_set;
15 set dirlist;
16 /* read the file references in variable called file_names */
17 INFILE IN dsd truncover FILEVAR = file_names END = end_of_file LRECL=32000;
18 DO WHILE (end_of_file = 0);
19 input var : $ 3000.;
20 /*filename=file_names;*/
21 var1 = _infile_;
22 if var1 = :'201';
23 Date_TimeStamp= scan(var1,1," ");
24 Status = scan(var1,2," ");
25 Processid = scan(var1,3," ");
26 userid = scan(var1,4," ");
27 Details = scan(var1,-1,'-');
28 drop var var1;
29 OUTPUT;
30 END;
31 RUN;
NOTE: The variable file_names exists on an input data set, but was also specified in an I/O statement option. The variable will
not be included on any output data set.
NOTE: The infile IN is:
Filename=/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-30_tmptcmlva2_19142.log,
File List=('/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-30_tmptcmlva2_19142.log'
'/apps/tir/test/loganalysis/
'),
Owner Name=sassrv,Group Name=sas,
Access Permission=rwxrwxr-x,
Last Modified=Mon Aug 31 00:01:56 2015,
File Size (bytes)=720559
NOTE: The infile IN is:
Filename=/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-29_tmptcmlva2_19142.log,
File List=('/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-29_tmptcmlva2_19142.log'
'/apps/tir/test/loganalysis/
'),
Owner Name=sassrv,Group Name=sas,
Access Permission=rwxrwxr-x,
Last Modified=Sun Aug 30 00:01:46 2015,
File Size (bytes)=720559
NOTE: The infile IN is:
Filename=/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-28_tmptcmlva2_19142.log,
File List=('/usr/sas/sas_config/Lev1/SASApp/StoredProcessServer/Logs/SASApp_STPServer_2015-08-28_tmptcmlva2_19142.log'
'/apps/tir/test/loganalysis/
'),
Owner Name=sassrv,Group Name=sas,
Access Permission=rwxrwxr-x,
Last Modified=Sat Aug 29 00:01:36 2015,
File Size (bytes)=2815408
NOTE: 1 record was read from the infile IN.
The minimum record length was 572.
The maximum record length was 572.
NOTE: 1 record was read from the infile IN.
The minimum record length was 572.
The maximum record length was 572.
3 The SAS System 08:36 Friday, September 11, 2015
NOTE: 1 record was read from the infile IN.
The minimum record length was 572.
The maximum record length was 572.
NOTE: There were 3 observations read from the data set WORK.DIRLIST.
NOTE: The data set WORK.OUTPUT_DATA_SET has 0 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.07 seconds
cpu time 0.00 seconds
... View more