I almost reach my objective (Youhouuu !!!!)
But I really don't understand why it doesn't work until the end...
For clarity's sake I am taking a very simple example. The operations I am doing in the script (gsub and print) really don't have any importance !!! I just matter about redirecting the file that I produced inside the script.
input file called "original.txt":
I remove the expression "line " in $2 and would like to redirect the output file called "for_later.txt" because I will need to have a trace of the data I produced at this stage and I will use them later for something else (something even totally different from programming).
But for now, I need to keep processing the original input file "original.txt" by adding another field ("Price"), like if I've never redirected anything.
Here what I tried:
Problem:
The file "for_later.txt" looks perfectly fine:
However my final output produced when awk finish executing the entire script only display the first line (the content of this line is correct though): Question: Why the 2 other lines are missing ???
the final output I would like for now:
* I also tried every kind of getline:
getline
getline var
getline < file
getline var < file
command | getline (with the shell command "cat for_later.txt")
command | getline
command |& getline
command |& getline var
* I tried to close the file before calling getline.
* I tried "if" instead of "while", and even with no statements.
It always return the first line only !
Please, if someone could explain what is happening it would be great.
Thanks !
Last edited by beca123456; 09-28-2012 at 12:39 AM..
Actually when I tried your code in gawk, I did not get any terminal output. That may be because gawk buffers its output. So, the file for_later.txt actually has records only when the program finishes (or when the buffer is flushed) and not in between.
But, I could simulate the behaviour mentioned by you by putting in a system call with a null string (system("")) after print $0 > "for_later.txt". This flushes the output buffers to their destinations.
When I tried your code with the awk which comes with AIX 6.1, I got what you want to see:
Last edited by elixir_sinari; 09-28-2012 at 04:12 AM..
I am using gawk as well and I get only the first line on the terminal output.
So, is there any way to "force" or bypass the error exit status of getline and set it to 1 in order to keep reading the remaining line of "for_later.txt"?
So I'm writing a script which tries to parse human-readable addresses. Part of it is this:
print $2, implode(A,1,AN," "), CITY, PROV, POST, COUNTRY, CITYCOUNT>2;
CITYCOUNT is a variable between 0 and 3 counting the number of words in a city name. I'm trying to prnt 1 wherever that's greater... (5 Replies)
I've got a problem with file redirection in bash, in loop while (in my script done < bufor.txt). In every consecutive iteration there's a possibility that to the bufor.txt will be added some lines. Unfortunately, in loop, added lines are ignored (for example: bufor.txt has 5 lines, in 3rd iteration... (4 Replies)
Hi,
I have to migrate Korn Shell who call Sybase command into Oracle Command.
I have a problem on this example :
DATNUM=$(
sqlplus -S SA/SASASA@MIGGVDEV <<!
SET FEEDBACK OFF;
SET HEADING OFF;
select sybase_utilities.datediff('DAY', '01/01/1900', '01/01/2000') from... (4 Replies)
I have a system stat command running which generates data after 5 sec or so. I pass this data to awk and do some calculation to present the data differently. Once done now I want to pass this data to file as and when generated but doesn't work..unless the first command completes successfully.... (6 Replies)
Hello,
i need to redirect the output of print to a variable file name:
#This is normal
awk '{ print $17 > "output.txt" }' input
#I need something like this
awk '{ print $17 > "output_${25}.txt" }' input
how to format the output file name to contain a variable? (6 Replies)
hi
i want a solution for the fallowing:
i am redirecting output from bash script in which we are running background commands like
./test.sh
contains
ls -l &
ps
when we do as
./test.sh 1> test.txt 2>&1
but test.txt not containing output as ls -l and ps.
it showing ls -l, ps and... (2 Replies)
my querry is
suppose i have duplicate std i/p with FD-3 --exec 0<&3
now redirected std i/p to a file ----exec 0<file1
suppose i am reading the file line by line --while read LINE
cutting some fields and comparing it with a variable and if a match is found
... (0 Replies)
Hi,
i use awk -F to print three variable delimited by comma $1 $2 $3
if $2=="" i want to extract this information missing from another file using awk -v + some process.
but the problem i can't use the two awk together cause of redirection
there's a solution.
note: i can't use another... (1 Reply)
Hello Experts,
I am facing the following problem ..
>cat my_file prints
initial begin
StartSim;
LDR(on); // Lock Detect Enable
But when I trying the same with the following command it shows me all the line in the same line.Like
... (4 Replies)
I was simply trying to redirect some output in a log file but it foxed me.
truss a.out > log
It gave only the output of the a.out which was only a simple print "Hello"
Then I tried
truss a.out 2&1>a
echo `truss a.out` > a
All failed.
What am i missing.
Thanks (7 Replies)