awk to match multiple regex and create separate output files
Howdy Folks,
I have a list that looks like this:
(file2.txt)
AAA
BBB
CCC
DDD
and there are 24 of these short words.
I am matching these patterns to another file with 755795 lines (file1.txt).
I have this code for matching:
Code:
awk -v f2=file2.txt '
BEGIN {
while( (getline<f2) > 0 ) # read and collect records from f2
{
key = $1;
ki = kidx[key]++; # track number of duplicate keys (0 based)
k2rec[key,ki] = $0; # save unique record by key and dup count
}
close( f2 );
}
{
key = $1;
for( i = 0; i < kidx[key]; i++ ) # for each duplicate of key
printf( "%s\t%s\n", k2rec[key,i], $0 ); # print f2 record, followed by current f1 record
}
' <file1.txt > output
In this form every line in file1 that is matched goes into the same output file. What I would like to do is change the code such that each of the patterns in file2.txt gets its own file. For example:
all of the lines in file1.txt that match AAA would go in AAA.txt while all of the lines matching BBB would go in BBB.txt.
I'm not exactly sure how to handle controlling the output.
I have a 500 MB XML file from a FileMaker database export, it's formatted horribly (no line breaks at all). The node structure is basically
<FMPXMLRESULT>
<METADATA>
<FIELD att="............." id="..."/>
</METADATA>
<RESULTSET FOUND="1763457">
<ROW att="....." etc="....">
... (16 Replies)
hai all
I am new to the world of shell scripting
I wanted to extract two columns from multiple files say around 25 files
and i wanted to get the separate outfile for each input file
tired using the following command to extract two columns from 25 files
awk... (2 Replies)
Hi,
I'd like to process multiple files. For example:
file1.txt
file2.txt
file3.txt
Each file contains several lines of data. I want to extract a piece of data and output it to a new file.
file1.txt ----> newfile1.txt
file2.txt ----> newfile2.txt
file3.txt ----> newfile3.txt
Here is... (3 Replies)
Hi,
i want to extract the 'CREATE INDEX' or 'CREATE UNIQUE INDEX' statements from a ddl file and output each match to a separate file. i was looking around the net but couldnīt find anything.
a possible sed-script could be:
sed -n '/CREATE*INDEX*/,/COMMIT/p' filename.ddlbut i couldnīt find out... (11 Replies)
Hi,
I have one requirement, create separate files (".csv") from one excel file(xlsx) with multiple sheets. These ".csv" files are my source files. So anybody please suggest me the process.
Thanks in Advance.
Regards,
Harris (3 Replies)
Dear All,
I am trying to write a Unix Script which fires a sql query. The output of the sql query gives multiple rows. Each row should be saved in a separate Unix File.
The number of rows of sql output can be variable. I am able save all the rows in one file but in separate files.
Any... (14 Replies)
I would like to join two files when two columns in each file matches with each other and then produce an output when taking multiple columns.
Like I have file A
1234,ABCD,23,JOHN,NJ,USA
2345,ABCD,24,SAM,NY,USA
5678,GHIJ,24,TOM,NY,USA
5678,WXYZ,27,MAT,NJ,USA
and file B
... (2 Replies)
I am trying to use awk to create (in this example) 3 seperate text file from the unique id in $1 in file, if it starts with the pattern aa. The contents of each row is used to populate each text file except for $1 which is not needed. It seems I am close but not quite get there. Thank you :).
... (3 Replies)
In the below awk I am trying to mkdir based of an exact match between file2 line starting with R_2019.... and file1 line starting with R_2019. When a match is found there is a folder located at /home/cmccabe/run with the same name as the match where each $2 in file1 is a new subdirectory in that... (2 Replies)
Discussion started by: cmccabe
2 Replies
LEARN ABOUT MINIX
paste
PASTE(1) General Commands Manual PASTE(1)NAME
paste - paste multiple files together
SYNOPSIS
paste [-s] [-d list] file...
OPTIONS -d Set delimiter used to separate columns to list.
-s Print files sequentially, file k on line k.
EXAMPLES
paste file1 file2 # Print file1 in col 1, file2 in col 2
paste -s f1 f2 # Print f1 on line 1 and f2 on line 2
paste -d : file1 file2
# Print the lines separated by a colon
DESCRIPTION
Paste concatenates corresponding lines of the given input files and writes them to standard output. The lines of the different files are
separated by the delimiters given with the option -s. If no list is given, a tab is substituted for every linefeed, except the last one.
If end-of-file is hit on an input file, subsequent lines are empty. Suppose a set of k files each has one word per line. Then the paste
output will have k columns, with the contents of file j in column j. If the -s flag is given, then the first file is on line 1, the second
file on line 2, etc. In effect, -s turns the output sideways.
If a list of delimiters is given, they are used in turn. The C escape sequences
, , \, and are used for linefeed, tab, backslash,
and the null string, respectively.
PASTE(1)