Example:
The following awk script works like a charm, NR==FNR is true for file1, the remainder runs for file2:
Now have an empty file1:
and run the awk script again.
The result is empty as expected.
However, this time it did the NR==FNR action for file2!
Check with
Here the result was good - by good luck.
In some other cases this can lead to misbehavior.
The following fix is available:
But not always applicable, for example if you have a wild card file*. So here is a better fix:
Now F is undefined=0 in file1 and set to 1 before file2 is opened.
You can even continue like this: file1 F=1 file2 F=2 file3
then you can even distinguish between file2 and file3.
The ultra-short-code-hackers can even use !F.
These 3 Users Gave Thanks to MadeInGermany For This Post:
You can also let awk directly examine the arguments given to it:
If empty_file is an empty file, file1 contains:
and file2 contains:
it produces the output:
and if the last line of the script is changed to:
it produces the output:
This User Gave Thanks to Don Cragun For This Post:
Sorry for the probably strangely worded title but I don't really know how else to put it.
Background context: Post processing LAMMPS simulation data.
tl;dr: I'm making two spheres collide, every defined timestep the simulation outputs a bunch of data including total energy of the particles,... (10 Replies)
To merge mutiple *.tab files as:
file1.tab
rs1 A A
rs2 A A
rs3 C C
rs4 C Cfile2.ind
rs1 T T
rs2 T T
rs3 G G
rs4 G Gand file3.tab
rs1 B B
rs2 B B
rs3 L L
rs4 L LOutput:
file1.tab file2.tab file3.tab
AA TT BB
AA TT BB
CC GG LL
CC GG ... (4 Replies)
Hi everybody!
need some awk-support. i want a line-selective printout of a file.
wat i normally will do with ...
awk ' FNR==8' sample.txt
But now i need the data from line 8, 10 and the following data from line13 to 250 wich is not end of the file. I tried allready to combine it but without... (2 Replies)
Hi,
I have an issue with the below script
nawk 'NR==FNR{a=$4" "$5}NR>FNR{print NF?$0:a"\n";if(/^cn:/) x=$0}' FS="" in1.txt in2.txt > out1.txt
It is taking too long to get a string from in1.text, search for the string in in2.txt and create a new file out1.txt.
Is there any alternative way we... (1 Reply)
how do i "awk" the date after the from only to compare it on a if statement later .
filename example:
server1-ips-ultranoob-ok_From_2012_21_12-23:40:23_To_2012_21_12-23:49:45.zip
what i want o do is compare only the date from the string in "From_2012_21_12" in this case i only want the... (4 Replies)
awk -F'' 'FNR==NR {a=$2; next} {$1=a} 1' $useralias ${entries} >> ${entries}_2
Hi,
Is there anyway to alter this command so that if it does not find a match it will just leave the line alone instead of replacing what it doesn't find with a blank space? (4 Replies)
Hi Guys,
I have two files:
f1:
A B C D E F G H
f2:
A X Y Z
f1 has 48000 lines, and f2 has 68. I have been matching f1 $3 to f2 $1, and getting f3:
A A B C D E F G
I would like f3 too look like this:
A X Y Z A B C D E F G (2 Replies)
hi, i have two files, both with 3 columns, the 3rd column has common values between the two files and i want to produce a 3rd file with 4 columns.
file 1
a, ,b c
file 2
a, b ,d
I want to compare the 3rd value and if a match print to file 3 with the 3 columns from the first file... (11 Replies)
As I know:
FNR: The ordinal number of the current record in the current file.
NR: The ordinal number of the current record from the start of input.
I don't understand really differency between NR and FNR. Who can explain it for me? And give me an example.
Thanks (1 Reply)