I am trying to append a "*" field to the record containing "Ref" in $1, only if the previous $1 with a common $2 have a value <4.
ouput:
Code:
1|Bob
2|Bob
Ref|Bob|*
3|Rick
7|Rick
Ref|Rick
The first subgroup ("Bob") shows $1 with only values <4, so a "*" is appended at the record "Ref".
The second subgroup ("Rick") shows one value >4 and is thus unchanged.
I read a couple of tutorials dealing with control-break programs, but they are all for counting (which is not my goal).
However, I don't get it. What is the point of using FNR=NR if the two input files are the same?
Usually we use this trick when 2 files are different for comparing them, no?
As per your request each 1st field with respect to 2nd field should be less than 4, so I have taken field 2 as index and added all it's first fields(Assuming as per given data like there will be only 2 fields with values and one will be for ref) and if sum is less than 8 means we are good to add * at end else don't do anything. Now about your query to give Input_file 2 times, in awk we can read multiple files(same like we can multiple arguments to a script). It will read files one by one. Here I want to mention I have put condition FNR==NR this condition will be true only when first file will be read as FNR value will be reset to one each time it goes to read next file but NR value will be keep on increasing even file name is changed, so it will like as follows.
Sorry, it doesn't work actually ! I didn't explain clearly at first.
Let's say we have this input instead:
Code:
1|Bob
3|Bob
Ref|Bob
5|Rick
1|Rick
Ref|Rick
The output should be the same as before:
Code:
1|Bob
3|Bob
Ref|Bob|*
5|Rick
1|Rick
Ref|Rick
But with your formula I got the second ref record tagged as well:
Code:
1|Bob
3|Bob
Ref|Bob|*
5|Rick
1|Rick
Ref|Rick|*
I am not trying to sum any value. The numbers are just tags.
Looking at the input file, we have 2 groups:
- the "Bob" group (record 1, 2, and 3)
- the "Rick" group (record 4, 5, and 6)
For each group, if ALL the $1 values (assessed individually) are <4, then the record with $1=Ref should be appended a "*" sign (like for the "Bob" group).
To the contrary, if at least one $1 value of a same group is >4, then all the record from this group should be unchanged (including the Ref record).
Here we have 3 groups "Bob", "Rick" and "Paul'.
* 1st group:
1st record, value of $1 is 1 (i.e. <4)
2nd record, value of $1 is 3 (i.e. <4)
=> as all $1 are <4, we can add "*" at the last record of the group (the one starting with Ref)
* 2nd group:
1st record of this group, value of $1 is 2 (i.e. <4)
2nd record of this group, value of $1 is 5 (i.e >4)
=> at least one value of the group is >4, the last record of the group (the one starting with Ref), must remain unchanged (no matter the value of $1 in the 3rd record of the group)
* 3rd group:
1st record of this group, value of $1 is 7 (i.e. >4)
=> the last record of the group (the one starting with Ref), must remain unchanged.
Hello.
System : opensuse leap 42.3
I have a bash script that build a text file.
I would like the last command doing :
print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt
where :
print_cmd ::= some printing... (1 Reply)
Hi,
thanks to a precedent post, and thanks to the reply of derekludwig of the forum, I have convert my first awk command as :
test.txt is : AAAAAGHIJKLAjKMEFJKLjklABCDJkLEFGHIJKL
awk -f findstring.awk test.txt > textreturn.txtfindstring.awk is :
BEGIN{ SLENGTH = 3 }
{
... (3 Replies)
A vast amount of problems asked in "Shell Programming an Scripting" can be traced back to be an application of a basic algorithm called a Control Break. Every programmer - and script writers are programmers nonetheless - should immediately recognize problems of this sort and know how to deal with... (1 Reply)
logs:
"/home/abc/public_html/index.php"
"/home/abc/public_html/index.php"
"/home/xyz/public_html/index.php"
"/home/xyz/public_html/index.php"
"/home/xyz/public_html/index.php"
how to use "cut" or "awk" or "sed" to get the following result:
abc
abc
xyz
xyz
xyz (8 Replies)
Hi,
I have line in input file as below:
3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL
My expected output for line in the file must be :
"1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL"
Can someone... (7 Replies)
hi,
i have a file having datas like that
./a.txt
12344
12345
12346
12347
.....
.....
...
i want to save this datas to another file like that
./b.txt
12344 12345 12346 12347 ... ... ...
i think awk can make this but how? :) waiting for ur help. (3 Replies)
Hi Friends,
Can any of you explain me about the below line of code?
mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`
Im not able to understand, what exactly it is doing :confused:
Any help would be useful for me.
Lokesha (4 Replies)