Dear All,
I need to execute a linux command and from de result create a data set:
%macro psawk;
%sysexec %str(ps aux | awk '{print $1,$2,$3,$6,$11}' >/SASData/test11.txt);
%mend psawk;
%psawk;
from this I get a file with the following structure
Regards,
Abraham
Assign filename to the file created by the command and read it into sas:
filename result '/SASData/test11.txt';
data want;
infile result truncover firstobs=2;
input user $ @;
if user = "USER" then do; input; return; end; /* skip 1st line */
input pid cpu rss command $;
run;
thanks for all your help
Assign filename to the file created by the command and read it into sas:
filename result '/SASData/test11.txt';
data want;
infile result truncover firstobs=2;
input user $ @;
if user = "USER" then do; input; return; end; /* skip 1st line */
input pid cpu rss command $;
run;
Thanks for your answer, it it works but I have a problem in the command column just put a fragment and not the complete information, this field can have up to 400 characters.
Regards
The default length is 8.
Change the $ after command to $400. (include the dot).
Why create the text file at all?
data want;
infile "ps aux | awk '{print $1,$2,$3,$6,$11}'" pipe firstobs=2 truncover ;
input user :$40. pid cpu rss command $500.;
run;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.