Conversion of '|' delimiter


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Conversion of '|' delimiter
# 8  
Old 02-01-2010
Quote:
Originally Posted by ssachins
Code:
#!/usr/bin/ksh
FileName=INPUT_FILE.txt

if [[ -e $FileName ]]; then
while read line
  do
    awk -F |  '{for( i = 1;i <= NF;++i)
      if( i % 2 == 0 ) printf("%s\n",$i) 
    else
      printf("%s|",$i) ; }'
  done < $FileName
else
   echo "File $FileName  does not exists"
fi

Thank you in advance.
Fix your code.

Code:
#!/usr/bin/ksh
FileName=INPUT_FILE.txt

if [[ -e $FileName ]]; then
  awk -F "|"  '{for( i = 1;i <= NF;++i)
      if( i % 2 == 0 ) printf("%s\n",$i)
      else
        printf("%s\t",$i) ; }{print ""}' $FileName
else
   echo "File $FileName  does not exists"
fi

# 9  
Old 02-02-2010
The above mentioned code is converting the first '|' to Tab delimited but unable to format the second '|' value to new line.

Also, I found another issue is like the input file does not contains the '|' at the end of each line hence when I execute the file using Ahmad's code, the format is getting changed from second line.

The actual data is coming like this -
Code:
NAME|ABC|LASTNAME|PQR|AGE|20|SEX|MALE
NAME|XYZ|LASTNAME|PDF|AGE|21|SEX|MALE

# 10  
Old 02-02-2010
Quote:
Originally Posted by ssachins
The above mentioned code is converting the first '|' to Tab delimited but unable to format the second '|' value to new line.

Also, I found another issue is like the input file does not contains the '|' at the end of each line hence when I execute the file using Ahmad's code, the format is getting changed from second line.

The actual data is coming like this -
Code:
NAME|ABC|LASTNAME|PQR|AGE|20|SEX|MALE
NAME|XYZ|LASTNAME|PDF|AGE|21|SEX|MALE

My code are not changed for your new INPUT_FILE.txt, but still get correct result.

Code:
$ cat INPUT_FILE.txt
NAME|ABC|LASTNAME|PQR|AGE|20|SEX|MALE
NAME|XYZ|LASTNAME|PDF|AGE|21|SEX|MALE

$ cat ssachins.sh
#!/usr/bin/ksh
FileName=INPUT_FILE.txt

if [[ -e $FileName ]]; then
  awk -F "|"  '{for( i = 1;i <= NF;++i)
      if( i % 2 == 0 ) printf("%s\n",$i)
      else
        printf("%s\t",$i) ; }{print ""}' $FileName
else
   echo "File $FileName  does not exists"
fi

$ ./ssachins.sh
NAME    ABC
LASTNAME        PQR
AGE     20
SEX     MALE

NAME    XYZ
LASTNAME        PDF
AGE     21
SEX     MALE

# 11  
Old 02-02-2010
I tried the above code too but getting the below error -
Code:
awk: syntax error near line 1
awk: bailing out near line 1

# 12  
Old 02-02-2010
Quote:
Originally Posted by ssachins
I tried the above code too but getting the below error -
Code:
awk: syntax error near line 1
awk: bailing out near line 1

Use nawk or /usr/xpg4/bin/awk on Solaris.
# 13  
Old 02-08-2010
It's working now.
Thank you all.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl Code to change file delimiter (passed as argument) to bar delimiter

Hi, Extremely new to Perl scripting, but need a quick fix without using TEXT::CSV I need to read in a file, pass any delimiter as an argument, and convert it to bar delimited on the output. In addition, enclose fields within double quotes in case of any embedded delimiters. Any help would... (2 Replies)
Discussion started by: JPB1977
2 Replies

2. Shell Programming and Scripting

Shell script to put delimiter for a no delimiter variable length text file

Hi, I have a No Delimiter variable length text file with following schema - Column Name Data length Firstname 5 Lastname 5 age 3 phoneno1 10 phoneno2 10 phoneno3 10 sample data - ... (16 Replies)
Discussion started by: Gaurav Martha
16 Replies

3. Shell Programming and Scripting

Delimiter Conversion(Generic Code)

Hi All, I am looking for a generic code which can search for the existing delimiter(what ever it may be) in a file and convert it to Pipeline. The file may have Pipeline delimiter already in that case just leave it. Please find below some sample records. Sample records1: ... (2 Replies)
Discussion started by: Arun Mishra
2 Replies

4. Shell Programming and Scripting

how to get everything before the last delimiter?

hi all, i have a string with a number of "/"s as delimiter. and i want everything BEFORE the last delimiter i know to use basename to get everything after the last delimiter. thx a lot! (2 Replies)
Discussion started by: sunnydanniel
2 Replies

5. Shell Programming and Scripting

How to cut by delimiter, and delimiter can be anything except numbers?

Hi all, I have a number of strings like below: //mnt/autocor/43°13'(33")W/ and i'm trying to get the numbers in this string, for example 431333 please help thanks ahead (14 Replies)
Discussion started by: sunnydanniel
14 Replies

6. Shell Programming and Scripting

Help regarding the delimiter

Hi, I am trying to load data from a file to oracle DB. The file am using has a ";" as a delimiter. While I load the file, I want to check whether the file is having the correct delimiter or not. if not, the file should not be processed. Is there any way that i could handle this scenario using... (3 Replies)
Discussion started by: smileyreddy
3 Replies

7. UNIX for Dummies Questions & Answers

unconstant delimiter

I have file with unconstatnt delimiter for each field which are non-printable characters like tab and space file 6271 manchester (tab) 11/09/09 200 accepted 6272 manchester (tab) 11/09/09 200 accepted I want only first... (7 Replies)
Discussion started by: tsurendra
7 Replies

8. Shell Programming and Scripting

Substring based on delimiter, finding last delimiter

Hi, I have a string like ABC.123.XYZ-A1-B2-P1-C4. I want to delimit the string based on "-" and then get result as only two strings. One with string till last hyphen and other with value after last hyphen... For this case, it would be something like first string as "ABC.123.XYZ-A1-B2-P1" and... (6 Replies)
Discussion started by: gupt_ash
6 Replies

9. UNIX for Dummies Questions & Answers

Delimiter

I am having the following file. I need to insert a delimiter in this file. I used sed but its not working. AAABBB 9 JJJ AAABBC 9 TTTTT AAABBA 8 JJJ AAABBC 7 TTTTT AAABBC 6 TTTTT Now i want the output file as: AAA|BBB| |9| |JJJ| AAA|BBC| |9| | |TTTTT| (3 Replies)
Discussion started by: sivakumar.rj
3 Replies

10. Shell Programming and Scripting

from - to delimiter

hey guys can you please help me out, i'm having problem in cutting strings. I need a delimiter to cut string. sample a.txt "ID", "1234" , "iam bighippo", "help!" "ID", "1235" , "again0", "xxxxxxx1" "ID", "1236" , "again1", "xxxxxxx2" "ID", "1237" , "again2", "xxxxxxx3" how do... (6 Replies)
Discussion started by: bighippo
6 Replies
Login or Register to Ask a Question