Shuffle Columns in Pipe delimited data


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shuffle Columns in Pipe delimited data
# 8  
Old 02-09-2015
BrahmaNaiduA Image
Registered User

BrahmaNaiduA,
The awk solution I provided ignores the escape characters which produces the output that matches your expected output. If you want the escape characters to ignore the delimiters then I think you need to refine your expected output.
# 9  
Old 02-09-2015
Hi,
An example of awk program that transform fields:
Code:
$ echo '12345678|ABN\|XYZ MED CHEM PTY. LTD.|C||100.00|22|AB"C\|Corp|"XYZ|CDEF"|' | awk -F\| '{A=1;for(i=1;i<NF;i++){ if ($i ~ /\\$/) {T[A++]=$i"|"$(++i)} else {T[A++]=$i}};for(i=1;i<A;i++)$i=T[i];NF=A;print}' OFS="\n"
12345678
ABN\|XYZ MED CHEM PTY. LTD.
C

100.00
22
AB"C\|Corp
"XYZ
CDEF"
"XYZ

Here, each line represent one field.
Just change OFS and your print.

Regards.
# 10  
Old 02-24-2015
Quote:
Originally Posted by Don Cragun
Why doesn't Scrutinizer's suggestion solve your problem?
Don,

I'll have such type of fields in my file so many. so thats why i'm requesting for suggestions to do it in a efficient way.

Thanks,
Brahma
# 11  
Old 02-24-2015
Quote:
Originally Posted by BrahmaNaiduA
Don,

I'll have such type of fields in my file so many. so thats why i'm requesting for suggestions to do it in a efficient way.

Thanks,
Brahma
Did you try:
Code:
sed 's/\\|/§/g' file | awk ... | sed 's/§/\\|/g'

with your awk script in the middle of the pipeline as Scrutinizer suggested? How long did it take? Does it run so slowly that you can't complete the processing before you need to run it again?

It might be able to be done more efficiently in a more complex awk script. It might be able to be done more efficiently in a C program. But, unless you can explain to us why this simple solution won't work (other than you don't like it), there isn't much incentive for us to try to guess at something that might work faster when we don't know anything about the sizes of your files, the hardware you're using (disk types and how they're connected, operating system, CPU, memory, etc.) there is no way that can guess at a more efficient way to do what this simple pipeline does.

There are execution costs, and there are maintenance costs. The maintenance costs for simple code are much lower.
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to remove new line characters from data rows in a Pipe delimited file?

I have a file as below Emp1|FirstName|MiddleName|LastName|Address|Pincode|PhoneNumber 1234|FirstName1|MiddleName2|LastName3| Add1 || ADD2|123|000000000 2345|FirstName2|MiddleName3|LastName4| Add1 || ADD2| 234|000000000 OUTPUT : ... (1 Reply)
Discussion started by: styris
1 Replies

2. Shell Programming and Scripting

How to shuffle odd and even columns?

Is there any way to place each even column name infront of its odd column using awk or others? input Ab name MGH26 B04 MGH26 B05 output name_Ab B04_MGH26 B05_MGH26 (4 Replies)
Discussion started by: quincyjones
4 Replies

3. Shell Programming and Scripting

Transpose comma delimited data in rows to columns

Hello, I have a bilingual database with the following structure a,b,c=d,e,f The right half is in a Left to right script and the second is in a Right to left script as the examples below show What I need is to separate out the database such that the first word on the left hand matches the first... (4 Replies)
Discussion started by: gimley
4 Replies

4. 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

5. Shell Programming and Scripting

Insert empty columns inside a pipe delimited file

Hi All , I have pipe delimiter file with 11 columns . I need to insert 4 empty columns after column 10 . and After 11 column I need to insert a column which is having the same value for all the rows . My file 1|2|3|4|5|6|7|8|9|10|11 New file ... (11 Replies)
Discussion started by: Hypesslearner
11 Replies

6. Shell Programming and Scripting

Oracle table extract: all columns are not converting into pipe delimited in flat file

Hi All, I am writing a shell script to extract oracle table into a pipe dilemited flat file. Below is my code and I have attached two files that I have abled to generate so far. 1. Table.txt ==> database extract file 2. flat.txt ==> pipe delimited after some manipulation of the original db... (5 Replies)
Discussion started by: express14
5 Replies

7. Shell Programming and Scripting

How to ignore Pipe in Pipe delimited file?

Hi guys, I need to know how i can ignore Pipe '|' if Pipe is coming as a column in Pipe delimited file for eg: file 1: xx|yy|"xyz|zzz"|zzz|12... using below awk command awk 'BEGIN {FS=OFS="|" } print $3 i would get xyz But i want as : xyz|zzz to consider as whole column... (13 Replies)
Discussion started by: rohit_shinez
13 Replies

8. Shell Programming and Scripting

Remove few columns from pipe delimited file

I have file as below column1|column2|column3|column4|column5| fill1|fill2|fill3|fill4|fill5| abc1|abc2|abc3|abc4|abc5| . . . . i need to remove column2,3, from that file column1|column4|column5| fill1|fill4|fill5| abc1|abc4|abc5| . . . (3 Replies)
Discussion started by: greenworld123
3 Replies

9. Shell Programming and Scripting

Help with converting Pipe delimited file to Tab Delimited

I have a file which was pipe delimited, I need to make it tab delimited. I tried with sed but no use cat file | sed 's/|//t/g' The above command substituted "/t" not tab in the place of pipe. Sample file: abc|123|2012-01-30|2012-04-28|xyz have to convert to: abc 123... (6 Replies)
Discussion started by: karumudi7
6 Replies

10. UNIX for Dummies Questions & Answers

Search for & edit rows & columns in data file and pipe

Dear unix gurus, I have a data file with header information about a subject and also 3 columns of n rows of data on various items he owns. The data file looks something like this: adam peter blah blah blah blah blah blah car 01 30 200 02 31 400 03 57 121 .. .. .. .. .. .. n y... (8 Replies)
Discussion started by: tintin72
8 Replies
Login or Register to Ask a Question