Sponsored Content
Top Forums Shell Programming and Scripting Rearrange fields of delimited text file Post 303003109 by Corona688 on Thursday 7th of September 2017 01:50:07 PM
Old 09-07-2017
In that case:

Code:
awk '
function rbefore(STR)   { return(substr(STR, 0, RSTART-1)); }# before match
function rall(STR)      { return(substr(STR, RSTART, RLENGTH)); }# Entire match
function rafter(STR)    { return(substr(STR, RSTART+RLENGTH)); }# after

# First line:  Reformat headers for sorting and find new order
NR==1 {
    for(N=1; N<=NF; N++)
    {
        IN=$N
        OUT=""

        # Convert a_3 to a_00000003 so it will sort
        while(match(IN, /[0-9]+/))
        {
                OUT=OUT rbefore(IN) sprintf("%08d", rall(IN));
                IN=rafter(IN);
        }

        OUT=OUT IN;
        A[OUT]=N # Creating an array of A["string_0001"]=N
    }

    C=asorti(A, B); # Sort it into B[1]="string_0001", B[2]="string_0003" etc
    for(X in B) D[X]=A[B[X]]; # D[1]=4, maps in to out column
}

# All lines: Assemble string from column order and print
{
        OUT=""
        for(N=1; N<=C; N++) OUT=OUT OFS $(D[N])
        print substr(OUT,2);
}

' FS=";" OFS=";" inputfile > outputfile

Also for GNU awk.
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Sort the fields in a comma delimited file

Hi, I have a comma delimited file. I want to sort the fields alphabetically and again store them in a comma delimited file. For example, My file looks like this. abc,aaa,xyz,xxx,def pqr,ggg,eee,iii,qqq zyx,lmo,pqr,abc,fff and I want my output to look like this, all fields sorted... (3 Replies)
Discussion started by: swethapatil
3 Replies

2. Shell Programming and Scripting

awk sed cut? to rearrange random number of fields into 3 fields

I'm working on formatting some attendance data to meet a vendors requirements to upload to their system. With some help on the forums here, I have the data close. But they've since changed what they want. The vendor wants me to submit three fields to them. Field 1 is the studentid field,... (4 Replies)
Discussion started by: axo959
4 Replies

3. Shell Programming and Scripting

Large pipe delimited file that I need to add CR/LF every n fields

I have a large flat file with variable length fields that are pipe delimited. The file has no new line or CR/LF characters to indicate a new record. I need to parse the file and after some number of fields, I need to insert a CR/LF to start the next record. Input file ... (2 Replies)
Discussion started by: clintrpeterson
2 Replies

4. Shell Programming and Scripting

Rearrange the text file

Gents, I have a large file and each line of the file contains more than 200 bytes.Please let me a way to have the new line to start when the word "FIT" appears. I was trialling with 'tr' command but i am not sure how to get it based on bytes and so it wasn't working... Current... (3 Replies)
Discussion started by: appu2176
3 Replies

5. UNIX for Advanced & Expert Users

Problem while counting number of fields in TAB delimited file

I'm facing a strange problem, please help me out. Here we go. I want to count number of fields in particular file. filename and delimiter character will be passed through parameter. On command prompt if i type following i get 27 as output (which is correct) cat customer.dat | head -1 | awk... (12 Replies)
Discussion started by: vikanna
12 Replies

6. Shell Programming and Scripting

Print records which do not have expected number of fields in a comma delimited file

Hi, I have a comma (,) delimited file, in which few fields are enclosed with in double quotes " ". I have to print the records in the file which donot have expected number of field with the line number. File1 ==== name,desgnation,doj,project #header#... (7 Replies)
Discussion started by: machomaddy
7 Replies

7. Shell Programming and Scripting

Split a free form text delimited by space to words with other fields

Hi, I need your help for below with shell scripting or perl I/P key, Sentence customer1, I am David customer2, I am Taylor O/P Key, Words Customer1,I Customer1,am Customer1,David Customer2,I Customer2,am Customer2,Taylor (4 Replies)
Discussion started by: monishathampi
4 Replies

8. Shell Programming and Scripting

Using awk to rearrange fields

Hi, I am required to arrange columns of a file i.e make the 15th column into the 1st column. I am doing awk 'begin {fs=ofs=","} {print $15,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14}' ad.data>ad.csv the problem is that column 15 gets to column 1 but it is not comma separated with the... (10 Replies)
Discussion started by: seddoubt
10 Replies

9. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

10. Shell Programming and Scripting

Pattern Match and Rearrange the Fields in UNIX

For an Output like below Input : <Subject A="I" B="1039502" C="2015-06-30" D="010101010101"> Output : <Subject D="010101010101" B="1039502" C="2015-06-30" A="I"> I have been using something like below but not getting the desired output : awk -F ' ' '/Subject/ BEGIN{OFS=" ";}... (19 Replies)
Discussion started by: arunkesi
19 Replies
gozer(1)						      General Commands Manual							  gozer(1)

NAME
gozer - a commandline text renderer SYNOPSIS
gozer [options] [file] DESCRIPTION
gozer is a commandline text rendering utility for creating images from abitrary text in antialised truetype fonts using optional fontstyles, wordwrapping and layout control. gozer uses the imlib2 library to create and save images. gozer has a few options, detailed below. Specify [file] as the filename to save the rendered text to. Options can also be specified in an rc file , allowing you to save com- monly used options (such as fontpaths) for reuse. The rc file $HOME/.gozerrc is always parsed for default settings, and other rc files can be specified on the commandline to override these options. See RC FILES for information on syntax. OPTIONS
-h, --help display help output and exit. -v, --version output version information and exit. -b, --background COL use COL as the background color, see COLOUR_DEFINITIONS for syntax, default is transparent (0,0,0,0). -f, --foreground COL use COL as the foreground color. Default is white (255,255,255,255). -F, --font STR draw using font STR. Size is specified with the name, eg 'arial/12' for 12pt arial, default is 20thcent/16 (a font supplied by gozer). -j, --justification STR justify text, allowed values for STR are left, right, center or block. Default is left. -l, --line-spacing INT separate multiple lines by INT pixels, default 1. -p, --fontpath STR colon seperated list of font directories to search for fonts in. Best used in the RCFILE to save typing it each time. -q, --quality INT 1-100, effects quality of output for certain formats, e.g. jpeg compression (higher means higher quality). -P, --pipe Pipe input text from standard in instead of reading it from a file. -r, --rc-file STR use STR as the rc file to look for extra options, default is $HOME/.gozerrc -s, --style STR use STR as a file to load a fontstyle from, see FONTSTYLES for syntax. -t, --text STR use STR as text to draw. -T, --textfile STR read text to draw from file STR. -w, --wrap INT wordwrap the text to INT pixels. -x, --x-offset INT Offset text horizontally from top left by INT pixels. -y, --y-offset INT Offset text vertically from top left by INT pixels. RC FILES
rc file syntax is simple. The '#' character at the start of a line denotes that the line is a comment, otherwise lines are started with the name of a long option from the commandline (without prefixing the --), some whitespace and the value of the option. E.g. fontpath /usr/share/truetype:/usr/local/share/truetype NOTE that options in a --rc-file specified rc file OVERRIDE those from the commandline, but the $HOME/.gozerrc file is always read first for default settings. COLOUR_DEFINITIONS You can define colours in 4 ways. Using the html style: #RRGGBB (in which case alpha defaults to 255), #RRGGBBAA, or an alternative style: r,g,b or r,g,b,a (no spaces between commas please). eg for white text, either use #ffffff, #ffffffff, "255,255,255" or "255,255,255,255". For red, #ff0000, #ff0000ff or "255,0,0" etc. FONTSTYLES
fontstyles can be defined in the EFM syntax (for compatibility only, these are not as powerful), or the recommended syntax defined here. The first line contains the line: #Style The second, an optional style name, #NAME mystyle There follows a list of layers. Each is described by this rule: RED GREEN BLUE ALPHA X_OFFSET Y_OFFSET The special values or 0,0,0,0 for red, green, blue and alpha specify the positioning of the actual text in it's selected colour. For example, the following style defines a very simple shadow for text: #Style #NAME shadow 0 0 0 128 -3 -3 0 0 0 0 0 0 BUGS
None known. LICENSE
Copyright Tom Gilbert 2000 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies of the Software, its documentation and marketing & publicity materials, and acknowledgment shall be given in the documentation, materials and software packages that this Software was used. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MER- CHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Email bugs and feature requests to <gozer_sucks@linuxbrit.co.uk> Oct 26, 2000 gozer(1)
All times are GMT -4. The time now is 06:51 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy