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
# 15  
Old 05-18-2016
Hi Rudi,

I have tried like below. Now the output is not displaying to teh screen but Output1 and output2 are generated with 56 lines input data as 1 line without modification on 19th field.

Code:
nawk '
       FNR == 1 {
              if(NR>1)
              close(ofn)
              ofn = "output" ++nf
       }
               {CNF = (length()-10)/7
                printf "%9s", substr ($0, 1, 9) > ofn
                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] > ofn} if(i==18) {printf "%7.3f",T[i]=TMP > ofn}
      }
      ' input1 input2

Please suggest me on this.

Regards,
am24
# 16  
Old 05-18-2016
Where has the
Code:
           { print > ofn
          }

gone? And, was the output correct when it occurred on the screen?
# 17  
Old 05-18-2016
Hi Rudi,

I have tried with print > ofn. Then the outputs are generated as below:

Code:
032016501  3.974 96.026 20.605 28.838 21.722 28.835  0.306  0.000 66.204  0.229  0.000 16.707  5.348  0.000  3.142  0.000  5.929 71.299 28.701  6.662 93.338  2.360 97.640  0.000100.000 46.620 53.380 43.192 56.808 66.447 16.775  0.063  0.160 16.554 92.911  1.882  0.159  5.048032016501  3.974 96.026 20.605 28.838 21.722 28.835  0.306  0.000 66.204  0.229  0.000 16.707  5.348  0.000  3.142  0.000  5.929 71.299 28.701  6.662 93.338  2.360 97.640  0.000100.000 46.620 53.380 43.192 56.808 66.447 16.775  0.063  0.160 16.554 92.911  1.882  0.159  5.048

Each line in output is repeating twice and 19th field modification did not happen

I tried with printf > ofn. All the 56 lines merged as 1 line in the output.

Also tried with printf RS > ofn. Outputs generated are same as the inputs.

The output is not correct when it printed on the screen.its same like input.19th field modification did not reflect.

I am missing some where to take the modification done on 19th field. Please suggest me on this.

Thanks in advance,
am24
# 18  
Old 05-18-2016
Use printf RS > ofn or print "" > ofn.

Where does
Code:
       for (i=2; i<=CNF+2; i++){printf "%7s", T[i] > ofn} if(i==18) {printf "%7.3f",T[i]=TMP > ofn}
                                                        ^--- this   ^--- and this

come from, when the working solution had
Code:
for (i=2; i<=CNF+2; i++){printf "%7s", T[i]; if(i==18) {printf "%7.3f",T[i]=TMP}}

You NEED to learn to do careful one-to-one copies, and, if modifying proposals, to know EXACTLY what you are doing!

And, don't rely on being spoon fed in these fora for every problem occurring in your IT career.
# 19  
Old 05-18-2016
Rudi, as per your suggestions , i have modified the first code below


for (i=2; i<=CNF+2; i++){printf "%7s", T[i]; if(i==18) {printf "%7.3f",T[i]=TMP}}

as

for (i=2; i<=CNF+2; i++){printf "%7s", T[i] > ofn} if(i==18) {printf "%7.3f",T[i]=TMP > ofn}


I have tried printf RS > ofn and print "" > ofn .In all of the trails ,the modification done on 19th field is not reflecting in the output.

Thanks for all of your suggestions.

Regards,
am24
# 20  
Old 05-18-2016
Sorry, is it working now, or failing?
# 21  
Old 05-18-2016
Hi Rudi,

In both the cases printf RS > ofn and print "" > ofn, I am getting the outputs as same as inputs . The arithmetic operation which i performed on 19th field is not reflecting in my outputs. So there is no difference between my Input and Output.

I am missing somewhere to take that arithmetic operation(done on 19th field) result to reflect in my output.

Regards,
am24

---------- Post updated at 06:55 AM ---------- Previous update was at 06:49 AM ----------

The same code when i am applying it on only one file, its perfectly working.

Code:
nawk '
               {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 RS
       }
       ' input > output

TMP values(19th field) are not reflecting when i am applying the code on multiple files and taking results to multiple files a sbelow

Code:
nawk '
       FNR == 1 {
              if(NR>1)
              close(ofn)
              ofn = "output" ++nf
       }
               {CNF = (length()-10)/7
                printf "%9s", substr ($0, 1, 9) > ofn
                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] > ofn} if(i==18) {printf "%7.3f",T[i]=TMP > ofn}
      }{printf RS > ofn
      }
      ' input1 input2

Please advise.

Regards,
am24
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