Scrutinizer,
Your awk line works very well, thank you. I was using a test file for it first but when using it on the actual files, it worked out fine.
Thanks again!
Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
Hi.
This longish post is intended to show a general technique for working with paragraphs or stanzas of data. Each stanza is transformed so that a copy of it becomes a single, standard text line, embedded newlines are converted to some other character (in the specific case "|"). This creates an intermediate structure that one could call a super-line.
The super-lines are then manipulated to obtain a final set of super-lines that conform to the requirements. Finally, the super-lines are split back to normal, and final filtering can be done.
This script performs that combination of operations. The creation of super-lines can be done with awk, perl, etc. I used a perl utility from github called cat0par (see script for link). The script also uses a few local tools such pll, specimen, etc.
producing:
The intermediate files are displayed to show the progress of the operation. They can be omitted for production work.
Relatively easy in sed:
Narrative: Set a branch tag 'loop' for looping, add another input line to the buffer, if the final line in the buffer is not an interface line then if it is not EOF then turn the linefeed into a colon and go back to loop else for EOF put a linefeed on the end of the line, then if there is no key string in the buffer, remove all but the interface lines and print the first interface line, discard the first line(s) in the buffer and loop back for more lines.
I have two files and desire to use the strings from $1 of file 1 (file1.txt) as search criteria to find matches in $2 of file 2 (file2.txt). If matches are found I want to output the entire line of file 2 (file2.txt) followed by fields $2-$11 of file 1 (file1.txt). I can find the matches, I cannot... (7 Replies)
The below awk in bold will look for the ids in file1 in $2 of file2 and if they match print the line in file2. If an id is missing or not found in file2 (like BMPR2 in line4 of file1) I can not figure out how to add it to them to the lines in the output as missing in $3 following the same format.... (4 Replies)
I have a list of countries and I'm trying to print the country names that start with "A" and end in "a".
I can do the first one which gives me the correct output.
awk '/^A/ {print $1}' countries.txt
but when I try:
awk '/^A a$/ {print $1}' countries.txt
or even:
awk... (2 Replies)
I have a file with many lines which contain strings like .. etc.
But with no rule regarding field separators or anything else.
I want to print ONLY THE STRING from each line , not the entire line !!!
For example from the lines :
Flow on service executed with success in . Performances... (5 Replies)
Hello,
I can extract lines in a file, between two strings but only one time.
If there are multiple occurencies, my command show only one block.
Example, monfichier.txt contains :
debut_sect
texte L1
texte L2
texte L3
texte L4
fin_sect
donnees inutiles 1
donnees inutiles 2
... (8 Replies)
Hi,
I have a file filled with search strings which have a blank in between and look like this:
S. g. Ehr.
o. Jg.
v. d. Chijs
g. Ehr.
Now i would like to search for the strings and it also shall return the next column after the match.
awk -v FILE="search_strings.txt" 'BEGIN {... (10 Replies)
Hi to everyone,
Please some help over here.
Hi have array a with 6 elements and array b with 3 elements as shown inside BEGIN{} statement.
I need help to get the correct sintax (the part in red) to compare if string from array b is in array a and print the number
related for each match.... (3 Replies)
hi everyone,
1.txt
981 I field1 > field2.a: aa, ..si01To:<f:a@a.com>From: <f:a@a.com>;tag=DVNgfRZBZRMi96 <f:a@1:333>;ZZZZZ: 12345
the output
field1 field2 <f:a@a.com>
the output is cut the string 3rd and 5th field, and get the value betwee "To:" and "From:", please advice.
... (1 Reply)
Hi,
I want to print only lines in between two strings and not the strings using awk.
Eg:
OUTPUT
top 2
bottom 1
left 0
right 0
page 66
END
I want to print into a new file only
top 2
bottom 1
left 0... (4 Replies)