Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Splitting up a text file into multiple files by columns Post 302719005 by agama on Sunday 21st of October 2012 10:42:32 PM
Old 10-21-2012
Assuming your system will allow 100 concurrent file descriptors to be open at the same time:

Code:
awk '
    {
        for( i = 3; i <= NF; i++ )
            printf( "%s %s %s\n", $1, $2, $(i) ) >i ".txt";
    }
' input-file

Should work.


Per your description 3.txt will contain columns 1,2 and 3; 4.txt will contain 1,2 and 4. There will not be 1.txt nor 2.txt as you indicated you want n.txt where n is the column in addition to 1 and 2. I hope I interpreted that correctly.

---------- Post updated at 22:42 ---------- Previous update was at 22:39 ----------

If your system will not allow 100 concurrently open FDs, then the code below should work -- not as efficient, and you will need to delete all text files if you need to rerun the programme.


Code:
awk '
    {
        for( i = 3; i <= NF; i++ )
        {
            fn = i ".txt";
            printf( "%s %s %s\n", $1, $2, $(i) ) >>fn;
            close( fn );
        }
    }
' input-file


Last edited by agama; 10-21-2012 at 11:46 PM.. Reason: typo
This User Gave Thanks to agama For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

splitting files based on text in the file

I need to split a file based on certain context inside the file. Is there a unix command that can do this? I have looked into split and csplit but it does not seem like those would work because I need to split this file based on certain text. The file has multiple records and I need to split this... (1 Reply)
Discussion started by: matrix1067
1 Replies

2. Shell Programming and Scripting

Splitting text file to several other files using sed.

I'm trying to figure out how to do this efficiently with as little execution time as possible and I'm pretty sure using sed is the best way. However I'm new to sed and all the reading and examples I've found don't seem to show a similar exercise: I have a long text file (i'll call it... (3 Replies)
Discussion started by: JeffV
3 Replies

3. Shell Programming and Scripting

help splitting a file into multiple files in bash

I have a file that logs multiple sessions. What I would like to do is split this file inclusive of the lines that include "starting session" and "shutting down" and ignore the data before and after the beginning of the first session and the end of the last session. The output files can be called... (2 Replies)
Discussion started by: elinenbe
2 Replies

4. Shell Programming and Scripting

splitting a file (xml) into multiple files

To split the files Hi, I'm having a xml file with multiple xml header. so i want to split the file into multiple files. Test.xml --------- <?xml version="UTF_8"> <emp: ....> <name>a</name> <age>10</age> </emp> <?xml version="UTF_8"> <emp: ....> <name>b</name> <age>10</age>... (11 Replies)
Discussion started by: sasi_u
11 Replies

5. Shell Programming and Scripting

Splitting text file into 2 separate files ??

Hi All, I am new to this forumn as well to the UNIX, I have basic knowledge of UNIX which I studied some years ago, now I have to do some shell scripting to load data into Oracle database using sqlldr utility, whcih I am able to do. I have a requirement where I need to do following operation. I... (10 Replies)
Discussion started by: shekharjchandra
10 Replies

6. Shell Programming and Scripting

splitting a huge line of file into multiple lines with fixed number of columns

Hi, I have a huge file with a single line. But I want to break that line into lines of with each line having five columns. My file is like this: code: "hi","there","how","are","you?","It","was","great","working","with","you.","hope","to","work","you." I want it like this: code:... (1 Reply)
Discussion started by: rajsharma
1 Replies

7. Shell Programming and Scripting

Splitting a file in to multiple files and passing each individual file to a command

I have an input file with contents like: MainFile.dat: 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 12247689|7896|77698080 16768900|hh78|78959390 ... (4 Replies)
Discussion started by: rkrish
4 Replies

8. Shell Programming and Scripting

Splitting a single file to multiple files

Hi Friends , Please guide me with the code to extract multiple files from one file . The File Looks like ( Suppose a file has 2 tables list ,column length may vary ) H..- > File Header.... H....- >Table 1 Header.... D....- > Table 1 Data.... T....- >Table 1 Trailer.... H..-> Table 2... (1 Reply)
Discussion started by: AspiringD
1 Replies

9. Shell Programming and Scripting

Splitting file into multiple files and renaming them

Hi all, Newbie here. First of all, sorry if I made any mistakes while posting this question in terms of rules. Correct me if I am wrong. :b: I have a .dat file whose name is in the format of 20170311_abc_xyz.dat. The file consists of records whose first column consists of multiple dates in... (2 Replies)
Discussion started by: chanduris
2 Replies

10. Shell Programming and Scripting

Script for splitting file of records into multiple files

Hello I have a file of following format HDR 1234 abc qwerty abc def ghi jkl HDR 4567 xyz qwerty abc def ghi jkl HDR 890 mno qwerty abc def ghi jkl HDR 1234 abc qwerty abc def ghi jkl HDR 1234 abc qwerty abc def ghi jkl -Need to split this into multiple files based on tag... (8 Replies)
Discussion started by: wincrazy
8 Replies
BOMSTRIP(1)						    BSD General Commands Manual 					       BOMSTRIP(1)

NAME
bomstrip, bomstrip-files -- strip the BOM sequence from UTF-8 files SYNOPSIS
bomstrip bomstrip-files file ... DESCRIPTION
The bomstrip utility reads UTF-8 data from its standard input and copies it to its standard output, stripping the BOM (byte-order mark) from the beginning of the text if it is present. There are no command-line options and no parameters. The bomstrip-files utility removes the UTF-8 BOM from the specified files, saving each file's original contents with a .bom extension. It uses the bomstrip utility, trying to execute it as ``bomstrip''; if the bomstrip utility is installed under another name, or if a more com- plex command is desired, it may be supplied in the BOMSTRIP environment variable. EXAMPLES
Strip the BOM, if present, from a text file: bomstrip < bom.txt > nobom.txt Strip the BOM, if present, from all text files, backing them up with a .bom extension: bomstrip-files *.txt Use the OCAML implementation of bomstrip: env BOMSTRIP='ocaml bomstrip.ocaml' bomstrip-files *.txt SEE ALSO
The bomstrip home page: http://www.xs4all.nl/~mechiel/projects/bomstrip/ HISTORY
The bomstrip utility (in many languages) was written by Mechiel Lukkien, with implementations in various languages sent to him by others, including Andreas Gohr, Andrew Gerrand, Berteun Damman, Matthijs Bomhoff, Peter Pentchev, and Ruben Smelik. The bomstrip-files utility and this manual page were written by Peter Pentchev in the hope that they reflect the behavior of all the bomstrip implementations in all lan- guages. AUTHORS
Mechiel Lukkien <mechiel@xs4all.nl> Peter Pentchev <roam@ringlet.net> BSD
June 14, 2008 BSD
All times are GMT -4. The time now is 03:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy