Redirecting the results to different output files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Redirecting the results to different output files
# 8  
Old 05-17-2016
Why is output "displaying to the screen"? You are printfing the fields to the screen, not redirecting them.
# 9  
Old 05-17-2016
yes. i am redirecting it like printf > ofn.

Results is displaying on screen and in the output file all the 56 lines merged as 1 line without the modification on 19th field.

Did i use the print statement at the right place ?
Code:
nawk '
       FNR == 1 {
              if(fc++)
              close(ofn)
              ofn = "output" fc
       }
               {CNF = (length()-10)/7
                printf "%9s", substr ($0, 1, 9)
                for (i=0; i<=CNF; i++) T[i+2] = substr ($0, 10+i*7, 7)
               TMP = 100 - (T[8] + T[9] + T[10] + T[11] + T[12] + T[13] + T[14] + T[15] + T[16] + T[17] + T[18])
       for (i=2; i<=CNF+2; i++){printf "%7s", T[i]; if(i==18) {printf "%7.3f",T[i]=TMP}}
            printf > ofn
      }
      ' input1 input2

Could you please suggest me on this?

Regards,
am24
# 10  
Old 05-17-2016
Please show us the various print/printf statements in your code snippet (e.g. by highlighting them in red).
# 11  
Old 05-18-2016
Hi Rudi,

Please find the below codes:
1st trail:
Code:
nawk '
       FNR == 1 {
              if(fc++)
              close(ofn)
              ofn = "test" fc
       }
               {CNF = (length()-10)/7
                printf "%9s", substr ($0, 1, 9)
                for (i=0; i<=CNF; i++) T[i+2] = substr ($0, 10+i*7, 7)
               TMP = 100 - (T[8] + T[9] + T[10] + T[11] + T[12] + T[13] + T[14] + T[15] + T[16] + T[17] + T[18])
               for (i=2; i<=CNF+2; i++){printf "%7s", T[i]; if(i==18){printf "%7.3f",T[i]=TMP}}}
              { printf > ofn }
      ' input1 input2

With the above all the 56 lines in the input1 and input2 are merged as 1 line without the modifictaion on 19th field and resulted as test1 and test2

2nd trail:
Code:
nawk '
       FNR == 1 {
              if(NR>1)
              close(ofn)
              ofn = "output" ++nf
       }
               {CNF = (length()-10)/7
                printf "%9s", substr ($0, 1, 9)
                for (i=0; i<=CNF; i++) T[i+2] = substr ($0, 10+i*7, 7)
               TMP = 100 - (T[8] + T[9] + T[10] + T[11] + T[12] + T[13] + T[14] + T[15] + T[16] + T[17] + T[18])
       for (i=2; i<=CNF+2; i++){printf "%7s", T[i]; if(i==18) {printf "%7.3f",T[i]=TMP}}}
           { print > ofn
      }
      ' input1 input2

With the above code, output1 and output2 are generated as same as the input1 and input2.

In both trails output displayed to screen. If i open the test1 from first trail its showing data and "test1" [Incomplete last line] 1 line, 15400 characters. where as the wc's are showing below.

Code:
wc test1 test2 output1 output2
       0    2080   15400 test1
       0    2055   15400 test2
      56    2135   15456 output1
      56    2110   15456 output2
     112    8380   61712 total

Regards,
am24
# 12  
Old 05-18-2016
OK, brilliant. You show us FOUR print / printf statements of which ONE is redirected to your desired output file(s) and prints but a <NL> character, and THREE print the result's fields to the default stdout which happens to be the screen.

EDIT: How about reconsulting the other thread and compare what is presented there to your script?
# 13  
Old 05-18-2016
Rudi , I am sorry . I really do not have any hopes that i can get through this by my own. I am not understanding where i am doing mistake in the code.

Please let me know what is the mistake.

Regards,
am24
# 14  
Old 05-18-2016
Redirect EVERY SINGLE print/printf to ofn.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Awk: Print Error While Redirecting output in multiple Files

Hi, I have a following code in which I am unable to redirect to multiple files. Can anybody please help with some corrections awk -F, '{ if ( substr($1,26,2)=="02" && substr($1,184,14)=="MTSCC_VALFIRST") { array1++ array2++ array3++ } else if (substr($1,26,2)=="03" &&... (4 Replies)
Discussion started by: siramitsharma
4 Replies

2. Post Here to Contact Site Administrators and Moderators

Redirecting grep output to multiple files

Hi All, I am trying to redirect the grep output to multiple files, can you please help with that. Below is the command im using to match my pattern grep \<proxyType\>$PxyType $DIR/EndureFiles.json > File_Name*.json Note : $DIR and $PxyType is already defined in my script Im able... (0 Replies)
Discussion started by: Deena1984
0 Replies

3. Shell Programming and Scripting

Redirecting the output

For example, if we run the below command, symcfg list -thin -pool , results in an output most of the times and if the out is generated i'm able to redirect the output to a file. but sometimes it doesnt result any output and even though the output is being redirected, i can see "No Thin Pools "... (2 Replies)
Discussion started by: web2moha
2 Replies

4. Shell Programming and Scripting

awk help: Match data fields from 2 files & output results from both into 1 file

I need to take 2 input files and create 1 output based on matches from each file. I am looking to match field #1 in both files (Userid) and create an output file that will be a combination of fields from both file1 and file2 if there are any differences in the fields 2,3,4,5,or 6. Below is an... (5 Replies)
Discussion started by: ambroze
5 Replies

5. Shell Programming and Scripting

Redirecting output to file

Hi, Below is the whole string which is to be redirected to the new file. su - oracle -c "exp $user/$pass file=/oracle/oradata/backup/exp_trn_tables_`date +%d_%b_20%y_%H_%M_%S`.dmp log=/oracle/oradata/backup/exp_trn_tables_`date +%d_%b_20%y_%H_%M_%S`.log tables=table1,table2 statistics=none" ... (3 Replies)
Discussion started by: milink
3 Replies

6. Shell Programming and Scripting

Redirecting to different output files with awk.

Well, it didn't take me long to get stumped again. I assure you that I'm not mentally deficient, just new to scripting. So, here's the gist. I want to redirect output from awk based off of which branch of an if-else statement under which it falls. #!/bin/bash #some variables... (2 Replies)
Discussion started by: mikesimone
2 Replies

7. Shell Programming and Scripting

Redirecting echo output to 2 flat files

Hello all, I have the following 2 questions.. 1) I would like to capture the output of an echo command to 2 different files at the same time. This does not seem to work. Any ideas? echo ==== started on `date` ==== >> res1.log res2.log 2) Would it be possible to just get the 5th... (2 Replies)
Discussion started by: luft
2 Replies

8. Programming

execl() + redirecting output to text files

Im currently using execl() to run the ls command and redirect the output to a text file. Unfortunately, when I check the text file, no information has been written to it. I am calling execl() with the ls command like this execl( "/bin/ls" , "-al" , '>' , "dirlist.txt" ,(char *) 0 ); ... (5 Replies)
Discussion started by: JamesGoh
5 Replies

9. Shell Programming and Scripting

Redirecting OUTPUT

Hi, I want to move the output of a command/script to a file as well as to to be displayed on stdout. Can anybody help me in this. Thanks in advace .. -Chanakya M (1 Reply)
Discussion started by: Chanakya.m
1 Replies

10. UNIX for Dummies Questions & Answers

Redirecting output to multiple log files?

If I wanted to redirect output to multiple log files, what would be the best way to do that? echo "Unix is awesome" >>unixgod.log >>unixgod.log (3 Replies)
Discussion started by: darthur
3 Replies
Login or Register to Ask a Question