Visit Our UNIX and Linux User Community


Delimiters missing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delimiters missing
# 1  
Old 02-23-2007
Delimiters missing

Hi
I have a pipe-delimited file where I eventually need to replace a string stored on the 3th field on a specific record.

This is how the file looks like:
Code:
A|Mike|Lvl 1|...
B|...
A|Maria|Lvl 1|...
C|...
B|...
A|Jimmy|Lvl 2|...
C|...
A|Carry|Lvl 0|...
C|...
B|...
A|John|Lvl 8|...
C|...

I want to change "Lvl 1" and "Lvl 2" to "Lvl 3".

Code:
A|Mike|Lvl 3|...
B|...
A|Maria|Lvl 3|...
C|...
B|...
A|Jimmy|Lvl 3|...
C|...
A|Carry|Lvl 0|...
C|...
B|...
A|John|Lvl 8|...
C|...

I.e. I need to check if itīs a "A" record, and if the third field states "Lvl 1" or "Lvl 2".

Code:
awk 'BEGIN {FS="|"}{if ($1 == "A") {if ($3 == "Lvl 0" || $3 == "Lvl 1") $3="Lvl 3"};print $0}' input_file > output_file

This works (not pretty though) but it screws up my pipe delimiters. Any suggestion? Many thanks.
# 2  
Old 02-23-2007
you need to change the output field seperator which is space by default to ' | '

Code:
awk 'BEGIN {OFS="|"; FS="|"}{if ($1 == "A") {if ($3 == "Lvl 0" || $3 == "Lvl 1") $3="Lvl 3"};print $0}'  file

# 3  
Old 02-23-2007
Great, thanks!

Previous Thread | Next Thread
Test Your Knowledge in Computers #951
Difficulty: Medium
The first known description of a self-reproducing computer program in science fiction was in a short story written in 1970.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Inserting Delimiters

Hi Team, I am trying to get the data in below format Jan 01 | 19:00:32 | xyz | abc | sometext | string however I am not sure of the total number strings which can come in the record hence i cant use something like below as it can end $6 or it can go further cat file| awk... (8 Replies)
Discussion started by: rakesh_411
8 Replies

2. Red Hat

Yum - resolving missing dependencies that are not missing

I am trying to install VirtualBox on RHEL 5 but I need the 32 bit version for 32 bit Windows. When I run yum I get the following: sudo yum localinstall /auto/spvtg-it/spvss-migration/Software/VirtualBox-4.3-4.3.2_90405_el6-1.i686.rpm Loaded plugins: fastestmirror Setting up Local Package... (13 Replies)
Discussion started by: gw1500se
13 Replies

3. SuSE

How to resolve missing missing dependencies with opensuse 11.3 and 12.3?

Hello, This is a programming question as well as a suse question, so let me know if you think I should post this in programming. I have an application that I compiled under opensuse 12.2 using g77-3.3/g++3.3. The program compiles and runs just fine. I gave the application to a colleague who... (2 Replies)
Discussion started by: LMHmedchem
2 Replies

4. UNIX for Dummies Questions & Answers

delimiters used in UNIX

Can you point me to information on the different delimited in UNIX like colon, spaces and tabs? (1 Reply)
Discussion started by: momhef4
1 Replies

5. UNIX and Linux Applications

missing delimiters when mysql output is redirected to log file

Hi, Pls check that '|' and '+' present in Step-1 are not copied to log file in Step-3. Pls suggest how to get the exact output from Step-1 (i.e. with out losing '|' and '+') in to a log file ~Thanks Step-1: Execute command > mysql -utest -ptest -htesthost testdb -e "select * from... (3 Replies)
Discussion started by: newbielgn
3 Replies

6. Shell Programming and Scripting

Delimiters in awk

Line from input file a : b : c " d " e " f : g : h " i " j " k " l output k b a Its taking 7th word when " is the delimiter, 2nd and 1st word when : is the delimiter and returning all in one line.... I am on solaris Thanks..... (1 Reply)
Discussion started by: shekhar2010us
1 Replies

7. Shell Programming and Scripting

Split using two delimiters

I'm trying to do a split using two delimiters. The first delimiter is ": " (or we could call it :\s). The second is "\n". How can or these delimiters so I can toss the values into an array without issue? I tried @array = split /:\s|\n/, $myvar; This doesn't seem to be working. Any an... (3 Replies)
Discussion started by: mrwatkin
3 Replies

8. Shell Programming and Scripting

Problems with delimiters

Hello, I have data in a file something like this - UNB+UNOA:1+006415160:1+AR0000012360:ZZ+080701:0552+2++DELFOR++++T'UNH+2+DELFOR:D:97A:UN Here, the delimiters used are + , : and ' . I have a set of such files in which these delimiters vary from one file to another. I am developing a... (4 Replies)
Discussion started by: The Observer
4 Replies

9. Shell Programming and Scripting

i need to add missing delimiters...

ladies, gents.. say i have a file that should have 10 fields... (9 delimiters) some records have 10 fields, some have 5 some have 8, etc.. nothing consistent, but i need my file to have 9 delimiters on each line, even if its null fields.. how can i go line by line and add the correct... (2 Replies)
Discussion started by: obarrett
2 Replies

10. Solaris

To extract everything between two delimiters

My input file looks like " @$SCRIPT/atp_asrmt_adj.sql $SCRIPT/dba2000.scr -s / @$SCRIPT/cim1005w.pls $SCRIPT/dba2000.scr -s / @$SCRIPT/cim1006w.pls start $SCRIPT/cim1020d.sql;^M spool $DATA/cim1021m.sql @$DATA/cim1021m.sql ! rm $DATA/cim1021m.sql spool $DATA/cim1021m.sql... (1 Reply)
Discussion started by: dowsed4u8
1 Replies

Featured Tech Videos