- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
If anyone knows how to prevent the line numbers from being displayed in the Log Window, please let me know.
I'm using Windows SAS 9.4 TS1M6 (DMS).
I'm trying to detect differences in the submit log, but when code is inserted in the middle of the program, all subsequent line numbers are shifted and I can't detect the differences correctly.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi @japelin
This topic has been adressed earlier, try a google search on "sas suppress line numbers in log". The conclusions is that it can't be done unless you write a small SAS program to read a log file, remove the line numbers and write the result to another file. Do that on both log files and compare the output files. I use Notepad++ with the compare plugin installed, and it works perfectly.
I suggest that you also remove the title lines, because they are a disturbing element in the comparison. A program like this should do the work:
filename logfile "&logfile";
filename cleaned "&cleaned";
data _null_;
infile logfile;
file cleaned;
input;
if index(_infile_, ' The SAS System ') then delete;
if notdigit(scan(_infile_,1,' ')) = 0 then do;
firstblank = index(_infile_, ' ');
substr(_infile_, 1, firstblank-1) = '';
end;
put _infile_;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi @japelin
This topic has been adressed earlier, try a google search on "sas suppress line numbers in log". The conclusions is that it can't be done unless you write a small SAS program to read a log file, remove the line numbers and write the result to another file. Do that on both log files and compare the output files. I use Notepad++ with the compare plugin installed, and it works perfectly.
I suggest that you also remove the title lines, because they are a disturbing element in the comparison. A program like this should do the work:
filename logfile "&logfile";
filename cleaned "&cleaned";
data _null_;
infile logfile;
file cleaned;
input;
if index(_infile_, ' The SAS System ') then delete;
if notdigit(scan(_infile_,1,' ')) = 0 then do;
firstblank = index(_infile_, ' ');
substr(_infile_, 1, firstblank-1) = '';
end;
put _infile_;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Thank you.
I couldn't find it successfully by searching in Community, but I should have googled it first.
In addition, when I tried it in my environment, there was a case where it failed.
When I submitted proc options in a Japanese environment, there was a case where it started with a space followed by a number like this.
I think this is a rare case, but assuming the above, I built it as follows.
data _null_;
length f $1 i $10;
infile logfile;
file cleaned;
input;
f=subpad(_infile_,1,1);
i=trim(scan(_infile_,1,' '));
if input(f,??best.) and
input(i,??best.) then do;
firstblank=length(i)+1;
substr(_infile_,1,firstblank-1)='';
end;
put _infile_;
run;
It took an extra 20% of processing time, but it took just over a second when I tested it on a log of 1.72 million lines, so it was well within the acceptable range.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
What exactly are you trying to determine. "Differences" is a pretty broad topic in general and parsing logs may not be the best way.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Not sure about the line numbers.
There is an option called GENERIC that will remove a lot of the run specific filenames from the log and so make comparing the logs easier.
693 option generic; 694 filename csv temp; 695 696 data _null_; 697 file csv dsd ; 698 set sashelp.class; 699 put (_all_) (+0); 700 run; NOTE: The file CSV is: (system-specific pathname), (system-specific file attributes) NOTE: 19 records were written to the file (system-specific pathname). The minimum record length was 17. The maximum record length was 21. NOTE: DATA statement used (Total process time): real time 0.02 seconds cpu time 0.00 seconds
I think there is a way to reset the line numbers. So if you insert that option after the place where the code diverges the line numbers should start synch up again.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
However, the GENERIC option is very useful for what I am trying to do.
Thank you very much.