Sponsored Content
Top Forums Shell Programming and Scripting Split file into given category and others using awk Post 302543223 by cympaulife on Saturday 30th of July 2011 01:52:49 AM
Old 07-30-2011
Split file into given category and others using awk

Hi All,

Would it be possible using awk to split a given file into two files based on a certain condition such that one output file will contain all lines that fit the condition while the other output file will contain lines that did not fit the condition?

Here is a sample input file

input.txt
Code:
1|2|3|ABC|ZXC|456
7|9|1|DEF|YTR|521
0|3|8|ABC|TFT|896
0|1|0|RVB|PLT|683

And this should be the contents of the output files
input.txt.ABC
Code:
1|2|3|ABC|ZXC|456
0|3|8|ABC|TFT|896

input.txt.OTHERS
Code:
7|9|1|DEF|YTR|521
0|1|0|RVB|PLT|683

Thanks for the help in advance!
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Split file using awk

I am trying to read a file and split the file into multiple files. I need to create new files with different set of lines from the original file. ie, the first output file may contain 10 lines and the second 100 lines and so on. The criteria is to get the lines between two lines starting with some... (8 Replies)
Discussion started by: pvar
8 Replies

2. UNIX for Dummies Questions & Answers

Split a file with no pattern -- Split, Csplit, Awk

I have gone through all the threads in the forum and tested out different things. I am trying to split a 3GB file into multiple files. Some files are even larger than this. For example: split -l 3000000 filename.txt This is very slow and it splits the file with 3 million records in each... (10 Replies)
Discussion started by: madhunk
10 Replies

3. Shell Programming and Scripting

split file with awk

I did a lot of search on this forum on spiting file; found a lot, but my requirement is a bit different, please guide. Master file: x:start:5 line1:23 line2:12 2:90 x:end:5 x:start:2 45:56 22:90 x:end:2 x:start:3 line1:23 line2:12 x:end:3 x:start:2 line5:23 (1 Reply)
Discussion started by: uwork72
1 Replies

4. Shell Programming and Scripting

split a file using awk

Hi , I just need to split a file and outputfiles are redirected to gzip file need: Input file - A.gz content of A.gz is 100|sfdds|dffdds|200112|sdfdf 100|sfdds|dffdds|200112|sdfdf 100|sfdds|dffdds|200112|sdfdf 100|sfdds|dffdds|200212|sdfdf 100|sfdds|dffdds|200212|sdfdf... (3 Replies)
Discussion started by: mohan_xunil
3 Replies

5. Shell Programming and Scripting

Getting category when given the variable from external file to shell script

Hi, I have a script that interacts with a config file in the format: file1.txt file2.txt file3.txt file4.txt file5.txt file6.txt I would like to return the Category, when given the file name. (11 Replies)
Discussion started by: MoreCowbell
11 Replies

6. Shell Programming and Scripting

AWK File Split

Hi All, Input.txt XYZONEABC                  CZXTWOJJJ KKKSIXOOO asdfhajlsdhfajs asdfasfasdf Output Files: ONE.txt XYZONEABC                 TWO.txt CZXTWOJJJ SIX.txt KKKSIXOOO I had a script (2 Replies)
Discussion started by: kmsekhar
2 Replies

7. Shell Programming and Scripting

Split File by Pattern with File Names in Source File... Awk?

Hi all, I'm pretty new to Shell scripting and I need some help to split a source text file into multiple files. The source has a row with pattern where the file needs to be split, and the pattern row also contains the file name of the destination for that specific piece. Here is an example: ... (2 Replies)
Discussion started by: cul8er
2 Replies

8. Shell Programming and Scripting

awk file split

Hi all, First of all I' like to mention that I'm pretty new to unix scripting. :( I'm trying to split an large xml with awk and rename it based on the values of two attributes. Example XML <RECORD> <element1>11</element1> <element2>22</element2> <element3>33</element3>... (18 Replies)
Discussion started by: f0usk4s
18 Replies

9. Shell Programming and Scripting

Total count in each category for given file list

I have list of file names in filename.txt below is file format >>File1 _________________________ 01~12345~Y~YES~aaaaa~can 02~23456~N~NO~bbbbb~can . . . 99~23__________________________ Need to find total count from each file depending on specific string and add them to have total count... (17 Replies)
Discussion started by: santoshdrkr
17 Replies

10. Shell Programming and Scripting

Category and count with awk

I want to categorize and count the as below: Input file: A1 G1 C1 F1 A2 G1 C1 F1 A3 G1 C1 F2 A4 G1 C2 F2 A7 G1 C2 F2 A8 G1 C2 F3 A11 G1 C2 F3 A23 G1 C2 F3 B4 G1 C2 F3 AC4 G2 C3 F4 B6 G2 C4 F4 BB5 G2 C4 F4 A25 G2 C5 F4 B13 G2 C5 F5 D12 G2 C5 F5 D2 G2 C5 F5 (3 Replies)
Discussion started by: aydj
3 Replies
geniconvtbl(1)							   User Commands						    geniconvtbl(1)

NAME
geniconvtbl - generate iconv code conversion tables SYNOPSIS
geniconvtbl [-fnq] [-p preprocessor] [-W arg] [-Dname] [-Dname=def] [-Idirectory] [-Uname] [infile...] DESCRIPTION
The geniconvtbl utility accepts code conversion rules defined in flat text file(s) and writes code conversion binary table file(s) that can be used to support user-defined iconv code conversions (see iconv(1) and iconv(3C) for more detail on the iconv code conversion). OPTIONS
The following options are supported: -f Overwrites output file if the output file exists. -n Does not generate an output file. This is useful to check the contents of the input file. -p preprocessor Uses specified preprocessor instead of the default preprocessor, /usr/lib/cpp. -q Quiet option. It suppresses warning and error messages. -W arg Passes the argument arg to the preprocessor. If this option is specified more than once, all arguments are passed to the preprocessor. -Dname geniconvtbl recognizes these options and passes them and their arguments to the preprocessor. -Dname=def -Idirectory -Uname OPERANDS
The following operand is supported: infile A path name of an input file. If no input file is specified, geniconvtbl reads from the standard input stream. The user can specify more than one input file if necessary. OUTPUT
If input is from the standard input stream, geniconvtbl writes output to the standard output stream. If one or more input files are speci- fied, geniconvtbl reads from each input file and writes to a corresponding output file. Each of the output file names will be the same as the corresponding input file with .bt appended. The generated output files must be moved to the following directory prior to using the code conversions at iconv(1) and iconv(3C): /usr/lib/iconv/geniconvtbl/binarytables/ The output file name should start with one or more printable ASCII characters as the 'fromcode' name followed by a percentage character (%), followed by one or more printable ASCII characters as the 'tocode' name, followed by the suffix '.bt'. The 'fromcode' and 'tocode' names are used to identify the iconv code conversion at iconv(1) and iconv_open(3C)). The properly named output file should be placed in the directory, /usr/lib/iconv/geniconvtbl/binarytables/. EXAMPLES
Example 1: Generating an iconv code conversion binary table The following example generates a code conversion binary table with output file name convertA2B.bt: example% geniconvtbl convertA2B Example 2: Generating multiple iconv code conversion binary tables The following example generates two code conversion binary tables with output files test1.bt and test2.bt: example% geniconvtbl test1 test2 Example 3: Using another preprocessor The following example generates a code conversion binary table once the specified preprocessor has processed the input file: example% geniconvtbl -p /opt/SUNWspro/bin/cc -W -E convertB2A Example 4: Placing a binary table To use the binary table created in the first example above as the engine of the conversion 'fromcode' ABC to 'tocode' DEF, become super- user and then rename it and place it like this: example# mv convertA2B.bt /usr/lib/iconv/geniconvtbl/binarytables/ABC%DEF.bt Example 5: Providing modified ISO8859-1 to UTF-8 code conversion Write a geniconvtbl source file that defines the code conversion. For instance, you can copy over /usr/lib/iconv/genicon- vtbl/srcs/ISO8859-1_to_UTF-8.src into your directory and make necessary changes at the source file. Once the modifications are done, generate the binary table: example% geniconvtbl ISO8859-1_to_UTF-8.src As super-user, place the generated binary table with a unique name at the system directory where iconv_open(3C) can find the binary table: example su Password: example% cp ISO8859-1_to_UTF-8.bt /usr/lib/iconv/geniconvtbl/binarytables/my-iso-8859-1%utf-8.bt After that, you can do the iconv code conversion. For instance: example% iconv -f my-iso-8859-1 -t utf-8 testfile.txt ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of geniconvtbl: LANG and LC_CTYPE. EXIT STATUS
The following exit values are returned: 0 No errors occurred and the output files were successfully created. 1 Command line options are not correctly used or an unknown command line option was specified. 2 Invalid input or output file was specified. 3 Conversion rules in input files are not correctly defined. 4 Conversion rule limit of input files has been reached. See NOTES section of geniconvtbl(4). 5 No more system resource error. 6 Internal error. FILES
/usr/lib/iconv/geniconvtbl/binarytables/*.bt conversion binary tables /usr/lib/iconv/geniconvtbl/srcs/* conversion source files for user reference ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
cpp(1), iconv(1), iconv(3C), iconv_close(3C), iconv_open(3C), geniconvtbl(4), attributes(5), environ(5), iconv(5) Solaris Internationalization Guide for Developers NOTES
The generated and correctly placed output files, /usr/lib/iconv/geniconvtbl/binarytables/*.bt, are used in both 32-bit and 64-bit environ- ments. SunOS 5.10 30 Nov 2001 geniconvtbl(1)
All times are GMT -4. The time now is 01:35 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy