Sponsored Content
Full Discussion: Text manipulation help
Top Forums Shell Programming and Scripting Text manipulation help Post 302976047 by RudiC on Thursday 23rd of June 2016 04:00:56 AM
Old 06-23-2016
Not too elegant with awk as the Address and Creation fields are to be filled into several fields...
Code:
awk '
NR==1                   {HD="Ticket #|Creation Month|Creation Year|Ref|Name|Address |City|State|Zipcode|Phone|Player|DOB|IP"

                         print HD                               # print it
                         sub ("Month\|Creation Year", "Date", HD)
                         sub ("\|City\|State\|Zipcode", _, HD)
                         gsub ("\|", ",", HD)
                         HDCnt = split(HD, HDArr, ",")          # HDArr n HDCnt needed later for extracting and printing
                         HD    = "," HD ","
                        }

function PRT()          {DL = ""                                # clear delimiter

                         for (i=1; i<=HDCnt; i++)       {printf "%s%s", DL, RES[HDArr[i]]       # print fields in sequence, plus delimiter
                                                         DL=SEP                                 # set delimiter
                                                        }
                         printf "\n"
                         delete RES                             # clear for next record
                        }

NF == 0                 {PRT()                                  # empty line means: print complete record
                        }

HD ~ "," $1 ","         {gsub (",", SEP, $NF)                   # prepare Address field
                         if ($1 ~ "Date") sub ("-","|", $NF)    # prepare Creation field
                         RES[$1] = $NF                          # save it for print
                        }

END                  {PRT()}                                    # print last record
' FS="[[:]" SEP="|" file
Ticket #|Creation Month|Creation Year|Ref|Name|Address |City|State|Zipcode|Phone|Player|DOB|IP
 XXXXXXXXXXXXXXXXX| 03|2015| 299XXXXXX| Alexandra| XXXX N 37 Ave| Hollywood| FL| 33021| XXX3190XXX| XXXXXX| June-14-1995| 73.XXXXXXXX - 73.XXXXXXXX
 XXXXXXXXXXXXXXXXX| 03|2016| 449XXXXXX| GXX(1) JonXX(2)| XXXX XXXXXX SE| Washington (city)| DC (state)| 20032 (zipcode)| XXX5954XXX| XXXXXX| April-24-1986| 66.44.XXXX - XXXXX.md.cable.rcn.com

and, the record separator is expected to be one single empty line.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Text Manipulation.

Hi I have only ever used awk and sed for basic requirements up until now. I have had to break a log down for multiple purposes. Using awk, sed and a date script. I am left with this: (message id, time of msg attempt, message id, domain name, time of msg completion) ... (4 Replies)
Discussion started by: Icepick
4 Replies

2. UNIX for Dummies Questions & Answers

text manipulation

I am tryin to figure out how to extract interested text from file example.txt blah blah blah a: child1 blah a: child2 blah b: parent1 blah blah blah .... blah a: child21 blah a: child22 blah a: child23 blah b: parent2 this kinda text repeats .. number of children is... (6 Replies)
Discussion started by: rajkishore
6 Replies

3. UNIX for Dummies Questions & Answers

Help with text manipulation

Hi there, I have some text files in unix format that processed by a program in windows, and when I open them with less or vi in linux, a warn for opening binary file is prompted, and as shown in vi, between every two characters there was inserted a "^@". How can I fix this. Plus, there are over... (2 Replies)
Discussion started by: dustinwang2003
2 Replies

4. UNIX for Dummies Questions & Answers

Text Manipulation

Greetings. Iīm a biologist and I donīt have mucho knowledge on Unix/Linux, but I need to use Cygwin to change some documents from a GenBank format to a FASTA format. GenBank format goes somthing like this: LOCUS NM_013964 2568 bp mRNA linear PRI 26-APR-2009... (2 Replies)
Discussion started by: vanesa1230
2 Replies

5. Shell Programming and Scripting

[HELP] Text manipulation... [HELP]

I need to know how can I remove all word after comma on each line. Like: jjkj,iiuiui,ijlkjkij,ookoo kijljlj,jhhkj,ijijkijkj,oijkijj kjkljlkj,kjkjlkjlkj,opok,okop to jjkj, kijljlj, ... (5 Replies)
Discussion started by: slutb3
5 Replies

6. UNIX for Dummies Questions & Answers

text manipulation help

Hello again unix.com How can I extract from a large file in format: steve@aol.com steve hawkins Location of this member is bla bla bla sun@hotmail.com Sun Ying This member is using browser bla bla bla to another text in format: steve@aol.com steve hawkins sun@hotmail.com sun ying ... (5 Replies)
Discussion started by: galford
5 Replies

7. UNIX for Dummies Questions & Answers

Text Manipulation Help

Hello Unix.com, I have a text in format: john sara lee How can I make it: john:john john:john1 john:john12 john:john123 sara:sara sara:sara12 sara:sara123 and so on (2 Replies)
Discussion started by: galford
2 Replies

8. UNIX for Dummies Questions & Answers

Text manipulation help

Hello unix.com users, I have a ip file (line-by-line). How can I delete the ips that keep repeating by mark XXX.XXX.XXX.* ... I want to erase only the lines that keep repeating more than 2 times. Example: 1.2.3.1 1.2.3.2 1.2.3.3 I want to erase all ips blocks that are repeating by C... (1 Reply)
Discussion started by: galford
1 Replies

9. UNIX for Dummies Questions & Answers

Text manipulation

i want to generate a list line-by-line of normal characters using letters . for example : dnds gnos mgod pets jnfp etc... i want to use all letters with all the posibilities is there a script that can do this ? (3 Replies)
Discussion started by: suppliernr1
3 Replies

10. Shell Programming and Scripting

Help text manipulation

Hello Forum , I need a help about text manupulation. I have a text file and I have to manipulate this file. Let's say source.txt source.txt UNB+UNOC:3+O0013000005MAN MN RVS:91+0098006688:92+190304:2313+F004169241' UNH+8146848+DELJIT:D:96A:UN' BGM+307:::JIS_SYNCRO_FIRM+2019030423234101+9'... (8 Replies)
Discussion started by: cemokam65
8 Replies
Mail::Message::Field::Address(3pm)			User Contributed Perl Documentation			Mail::Message::Field::Address(3pm)

NAME
Mail::Message::Field::Address - One e-mail address INHERITANCE
Mail::Message::Field::Address is a Mail::Identity is a User::Identity::Item SYNOPSIS
my $addr = Mail::Message::Field::Address->new(...); my $ui = User::Identity->new(...); my $addr = Mail::Message::Field::Address->coerce($ui); my $mi = Mail::Identity->new(...); my $addr = Mail::Message::Field::Address->coerce($mi); print $addr->address; print $addr->fullName; # possibly unicode! print $addr->domain; DESCRIPTION
Many header fields can contain e-mail addresses. Each e-mail address can be represented by an object of this class. These objects will handle interpretation and character set encoding and decoding for you. OVERLOADED
overload: boolean() The object used as boolean will always return "true" overload: string comparison() Two address objects are the same when their email addresses are the same. overload: stringification() When the object is used in string context, it will return the encoded representation of the e-mail address, just like string() does. METHODS
Constructors $obj->coerce(STRING|OBJECT, OPTIONS) Try to coerce the OBJECT into a "Mail::Message::Field::Address". In case of a STRING, it is interpreted as an email address. The OPTIONS are passed to the object creation, and overrule the values found in the OBJECT. The result may be "undef" or a newly created object. If the OBJECT is already of the correct type, it is returned unmodified. The OBJECT may currently be a Mail::Address, a Mail::Identity, or a User::Identity. In case of the latter, one of the user's addresses is chosen at random. Mail::Message::Field::Address->new([NAME], OPTIONS) See "Constructors" in Mail::Identity $obj->parse(STRING) Parse the string for an address. You never know whether one or more addresses are specified on a line (often applications are wrong), therefore, the STRING is first parsed for as many addresses as possible and then the one is taken at random. Attributes $obj->address() See "Attributes" in Mail::Identity $obj->charset() See "Attributes" in Mail::Identity $obj->comment([STRING]) See "Attributes" in Mail::Identity $obj->description() See "Attributes" in User::Identity::Item $obj->domain() See "Attributes" in Mail::Identity $obj->language() See "Attributes" in Mail::Identity $obj->location() See "Attributes" in Mail::Identity $obj->name([NEWNAME]) See "Attributes" in User::Identity::Item $obj->organization() See "Attributes" in Mail::Identity $obj->phrase() See "Attributes" in Mail::Identity $obj->username() See "Attributes" in Mail::Identity Collections $obj->add(COLLECTION, ROLE) See "Collections" in User::Identity::Item $obj->addCollection(OBJECT | ([TYPE], OPTIONS)) See "Collections" in User::Identity::Item $obj->collection(NAME) See "Collections" in User::Identity::Item $obj->find(COLLECTION, ROLE) See "Collections" in User::Identity::Item $obj->parent([PARENT]) See "Collections" in User::Identity::Item $obj->removeCollection(OBJECT|NAME) See "Collections" in User::Identity::Item $obj->type() Mail::Message::Field::Address->type() See "Collections" in User::Identity::Item $obj->user() See "Collections" in User::Identity::Item Accessors $obj->encoding() Character-set encoding, like 'q' and 'b', to be used when non-ascii characters are to be transmitted. Access to the content $obj->string() Returns an RFC compliant e-mail address, which will have character set encoding if needed. The objects are also overloaded to call this method in string context. example: print $address->string; print $address; # via overloading DIAGNOSTICS
Error: $object is not a collection. The first argument is an object, but not of a class which extends User::Identity::Collection. Error: Cannot coerce a $type into a Mail::Message::Field::Address When addresses are specified to be included in header fields, they may be coerced into Mail::Message::Field::Address objects first. What you specify is not accepted as address specification. This may be an internal error. Error: Cannot load collection module for $type ($class). Either the specified $type does not exist, or that module named $class returns compilation errors. If the type as specified in the warning is not the name of a package, you specified a nickname which was not defined. Maybe you forgot the 'require' the package which defines the nickname. Error: Creation of a collection via $class failed. The $class did compile, but it was not possible to create an object of that class using the options you specified. Error: Don't know what type of collection you want to add. If you add a collection, it must either by a collection object or a list of options which can be used to create a collection object. In the latter case, the type of collection must be specified. Warning: No collection $name The collection with $name does not exist and can not be created. SEE ALSO
This module is part of Mail-Box distribution version 2.105, built on May 07, 2012. Website: http://perl.overmeer.net/mailbox/ LICENSE
Copyrights 2001-2012 by [Mark Overmeer]. For other contributors see ChangeLog. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.14.2 2012-05-07 Mail::Message::Field::Address(3pm)
All times are GMT -4. The time now is 05:42 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy