<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Unix command with SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Unix-command-with-SAS/m-p/430784#M106496</link>
    <description>&lt;P&gt;Hi Guys...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have two files with some data like:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;file1.txt&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;222222222222222&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;555555555555555&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;file2.txt&lt;/P&gt;&lt;P&gt;999999999999999&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;888887756643656&lt;/P&gt;&lt;P&gt;343546567576888&lt;/P&gt;&lt;P&gt;232343454634546&lt;/P&gt;&lt;P&gt;897600000000000&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now my question is that I want only those data at output witch is common in both the file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Like:-&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In order to do this:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA file1;&lt;/P&gt;&lt;P&gt;INFILE ‘mypath/file1.txt’&lt;/P&gt;&lt;P&gt;INPUT part1 $;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA file2;&lt;/P&gt;&lt;P&gt;INFILE ‘mypath/file2.txt’&lt;/P&gt;&lt;P&gt;INPUT part2 $;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC sql;&lt;/P&gt;&lt;P&gt;SELECT * FROM file1 INTERSECT SELECT * FROM file2;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The output of my program is like:-&lt;/P&gt;&lt;P&gt;SAS output system&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;name&lt;/P&gt;&lt;P&gt;------------------------&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But i want only&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;as output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then again i modified by adding one new line:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;X ‘sh /shell_script/cut.sh’; /* absolute path */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And cut.sh is:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;tail -n +6 outputFile.lst &amp;gt; outFile.txt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but outFile.txt is not created.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What is wrong in my program?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note:- I am using SAS grid server on putty.&lt;/P&gt;</description>
    <pubDate>Thu, 25 Jan 2018 06:39:51 GMT</pubDate>
    <dc:creator>yadaw</dc:creator>
    <dc:date>2018-01-25T06:39:51Z</dc:date>
    <item>
      <title>Unix command with SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unix-command-with-SAS/m-p/430784#M106496</link>
      <description>&lt;P&gt;Hi Guys...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have two files with some data like:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;file1.txt&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;222222222222222&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;555555555555555&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;file2.txt&lt;/P&gt;&lt;P&gt;999999999999999&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;888887756643656&lt;/P&gt;&lt;P&gt;343546567576888&lt;/P&gt;&lt;P&gt;232343454634546&lt;/P&gt;&lt;P&gt;897600000000000&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now my question is that I want only those data at output witch is common in both the file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Like:-&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In order to do this:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA file1;&lt;/P&gt;&lt;P&gt;INFILE ‘mypath/file1.txt’&lt;/P&gt;&lt;P&gt;INPUT part1 $;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA file2;&lt;/P&gt;&lt;P&gt;INFILE ‘mypath/file2.txt’&lt;/P&gt;&lt;P&gt;INPUT part2 $;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC sql;&lt;/P&gt;&lt;P&gt;SELECT * FROM file1 INTERSECT SELECT * FROM file2;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The output of my program is like:-&lt;/P&gt;&lt;P&gt;SAS output system&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;name&lt;/P&gt;&lt;P&gt;------------------------&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But i want only&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;333333333333333&lt;/P&gt;&lt;P&gt;111111111111111&lt;/P&gt;&lt;P&gt;666666666666666&lt;/P&gt;&lt;P&gt;444444444444444&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;as output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then again i modified by adding one new line:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;X ‘sh /shell_script/cut.sh’; /* absolute path */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And cut.sh is:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;tail -n +6 outputFile.lst &amp;gt; outFile.txt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but outFile.txt is not created.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What is wrong in my program?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note:- I am using SAS grid server on putty.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2018 06:39:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unix-command-with-SAS/m-p/430784#M106496</guid>
      <dc:creator>yadaw</dc:creator>
      <dc:date>2018-01-25T06:39:51Z</dc:date>
    </item>
    <item>
      <title>Re: Unix command with SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unix-command-with-SAS/m-p/430785#M106497</link>
      <description>&lt;P&gt;Did you mean:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA file1;
INPUT text $;
cards;
111111111111111
222222222222222
333333333333333
444444444444444
555555555555555
666666666666666
;
RUN;

DATA file2;
INPUT text $;
cards;
999999999999999
333333333333333
111111111111111
666666666666666
888887756643656
343546567576888
232343454634546
897600000000000
444444444444444
;
RUN;

proc sql;
create table want as
select * from file1 as A
inner join file2 as B
on A.text = B.text;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 25 Jan 2018 07:04:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unix-command-with-SAS/m-p/430785#M106497</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-01-25T07:04:59Z</dc:date>
    </item>
    <item>
      <title>Re: Unix command with SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Unix-command-with-SAS/m-p/430802#M106499</link>
      <description>&lt;P&gt;Do not use a SQL select to write raw data to an external file. Instead create a dataset, and write the output file directly from that with a data step:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC sql;
create table want as
SELECT * FROM file1 INTERSECT SELECT * FROM file2;
quit;

data _null_;
file "outFile.txt";
set want;
put part1;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Add output path etc to the file statement.&lt;/P&gt;
&lt;P&gt;This way you do not need to manipulate the SAS output into the desired form from the commandline.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Additional hint: whenever you want to use an external command, do not rely on the rather crude X statement. Instead do this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename oscmd pipe "your command 2&amp;gt;&amp;amp;1";

data _null_;
infile oscmd;
input;
put _infile_;
run;

filename oscmd clear;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;All output from the command (including error messages, that's the function of the 2&amp;gt;&amp;amp;1) will end up in the SAS log for inspection/debugging.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jan 2018 08:06:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Unix-command-with-SAS/m-p/430802#M106499</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-01-25T08:06:28Z</dc:date>
    </item>
  </channel>
</rss>

