Help using Base SAS procedures

String concatenation

Accepted Solution Solved
Reply
Contributor
Posts: 58
Accepted Solution

String concatenation

Hi,

I need to concatenate some strings in order to create a command. This is the intial code

filename comando pipe "cd mylogdir; find . -mtime +1 -name '*.log'";

data listafile;
   infile comando truncover;
   input @1 nomefile $200.;
   if index(nomefile,'.log') or index(nomefile,'too long') then output;
run;

filename comando;

I would create the command


"cd mylogdir; find . -mtime +1 -name '*.log'";

dinamically, I mean a would read each parts of it from a dataset and concatenate them in order to create the complete command. Here you are my code

data dat;
  a='cd ';
  b='mylogdir';
  c='find . -mtime +1 -name *.log';
  old=a || b || c;
  put old=;
run;

%let mystring=;

data _null_;
  set dat;
  call symput('mystring',old);
run;

put mystring;

filename comando pipe &mystring;

but it does not work. Someone has an idea?

Many thanks


Accepted Solutions
Solution
‎11-28-2011 10:01 AM
Super User
Super User
Posts: 6,502

String concatenation

I see three issues.

1) You left out the semi-colon seperator between the cd and find commands.

old = a || b || ';' || c;

2) You have not put the quotes in the find command.

c="find . -mtime +1 -name '*.log'";

3) You need to quote the string you use in the FILENAME statement.

filename comando pipe "&mystring";

or you could use the quote() function.

call symput('mystring',quote(trim(old)));

View solution in original post


All Replies
Solution
‎11-28-2011 10:01 AM
Super User
Super User
Posts: 6,502

String concatenation

I see three issues.

1) You left out the semi-colon seperator between the cd and find commands.

old = a || b || ';' || c;

2) You have not put the quotes in the find command.

c="find . -mtime +1 -name '*.log'";

3) You need to quote the string you use in the FILENAME statement.

filename comando pipe "&mystring";

or you could use the quote() function.

call symput('mystring',quote(trim(old)));

Contributor
Posts: 58

String concatenation

Thanks Tom, it worked.

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 1137 views
  • 0 likes
  • 2 in conversation