removing frame charecters


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users removing frame charecters
# 1  
Old 04-12-2008
removing frame charecters

Hi
I have a requirement as follows. My Input file is as follows.

COL1,COL2,COL3,COL4,COL5
987,2,3~7~5,400~468~598,0005~4687~5980
1111,2,2~7,400~468,0005~897

Expected OUTPUT
============
COL1,COL2,COL3,COL4,COL5
987,2,3,400,0005
987,2,7,468,4687
987,2,5,598,5980
1111,2,2,400,0005
1111,2,7,468,897

COL3,COL4 and COL5 are in turn having own sub division with ~ as delimiter. COL3 can have any number of records till 80. If COL3 has 4 records then COL4 and COL5 contains same number of records.That is COL3 is dynamic.This can be done by counting and cutting columns in loop. But,How can this be done using some array structure to make it faster.
# 2  
Old 04-12-2008
This should do the job:

Code:
awk ' BEGIN{FS=OFS=","}
{
  n=split($3,a1,"~")
  split($4,a2,"~")
  split($5,a3,"~")
  for(i=1;i<=n;i++) {
    print $1,$2,a1[i],a2[i],a3[i]
  }
}' file

Regards
# 3  
Old 04-12-2008
thanks Buddy..that works
I know FS which is file seperator.
1. Can you explain me the key words like OFS.
2. how does this works for each line in a file..there are no loops for going to next line.
# 4  
Old 04-12-2008
OFS is the output field separator. Simply you can see an awk script as a loop, it executes the instructions for each line of the input and after the last instruction it reads the next line and so on until the end of the file. Google for "awk tutorial".

Regards
# 5  
Old 04-15-2008
RD=`date +%Y"-"%m"-"%d" "%T`
awk ' BEGIN{FS=OFS=","}
{
n=split($3,a1,"~")
split($4,a2,"~")
split($5,a3,"~")
for(i=1;i<=n;i++) {
print $1,$2,a1[i],a2[i],a3[i],$RD
}
}' file

I am writing this inside an shell script.In the above code if I add RD inside awk , its calling the value.How can I call the external value inside awk. i have bolded it.
# 6  
Old 04-16-2008
# 7  
Old 04-16-2008
Double post questions is not allowed, please read the:

https://www.unix.com/unix-dummies-que...om-forums.html

Continue here:

https://www.unix.com/unix-advanced-ex...#post302185832

Thread closed.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need to remove ^M charecters from all files

Hi, Below is my script where i wish to remove '^M' charecters from all files in the directory and sub-directories. Below code which is not able to remove all '^M' characters from all my files in all sub directories. find properties/* -type f -exec sh -c ' for file do tr -d '^M' < $file >... (3 Replies)
Discussion started by: mohtashims
3 Replies

2. Shell Programming and Scripting

Remove ^M charecters in all files

Hi, I wish to remove special charecters at the end of each line "^M" from all files under a folder and sub-folders. I do not seem to have dos2unix or Perl and my OS is Linux mymachine 2.6.32-431.5.1.el6.x86_64 #1 SMP Fri Jan 10 04:11:43 IST 2014 x86_64 x86_64 x86_64 GNU/Linux (8 Replies)
Discussion started by: mohtashims
8 Replies

3. Shell Programming and Scripting

Removing special ^M charecters

Hi, This code works for me for file in $(find /path/to/dir -type f); do tr -d '\r' <$file >temp.$$ && mv temp.$$ $file done However, i want this code to skip all .class files. Can you help me with the modified code. (2 Replies)
Discussion started by: mohtashims
2 Replies

4. UNIX for Dummies Questions & Answers

grep for special charecters

Hi, I need to grep for text between " 01/Aug" and " 02/Aug" in a text file. The awk command usually fails with the error saying "line too long" Is there other simpler ways to achieve this ? (12 Replies)
Discussion started by: shifahim
12 Replies

5. Shell Programming and Scripting

Removing repeating lines from a data frame (AWK)

Hey Guys! I have written a code which combines lots of files into one big file(.csv). However, each of the original files had headers on the first line, and now that I've combined the files the headers are interspersed throughout the new combined data frame. For example, throughout the data... (21 Replies)
Discussion started by: gd9629
21 Replies

6. Programming

Help receiving a frame in C!

Hello everybody, I have a problem with a program i'm coding, the thing is that i need the program to check quickly if it receives a response, if not, just go ahead. My program sends the frame successfully, but it keeps waiting for the response until it receives something. That's what i need to... (2 Replies)
Discussion started by: Zykl0n-B
2 Replies

7. Shell Programming and Scripting

frame multiple lines into one

Hi, i have a file with contents like below ( any number of entries can be there) 111 222 333 444 555 i need to make another file with single line like below: 111,222,333,444,555 (without ending , ) TIA Prvn (8 Replies)
Discussion started by: prvnrk
8 Replies

8. Shell Programming and Scripting

replacing a line of unknown charecters in a file

Hi All I have a requirement where using a script I grep a file for string (KSG/Password in below ) , get the next line which is the password and I need replace the whole line of unknown special charecters (encrypted password) with another line as given below . As in below i need to get... (12 Replies)
Discussion started by: malavm
12 Replies

9. Shell Programming and Scripting

stripping out certain charecters

we are ftping zipped up files from the development server to the production server daily.The files are in this format filename.dat.20061231.12131.gz I have to unzip the file (i can do that with gunzip) and then strip out the timestamp after the .dat extension. I can do something like this ... (4 Replies)
Discussion started by: mervin2006
4 Replies

10. Shell Programming and Scripting

Restricted charecters in FTP password

hi i am unable to connect to FTP server.My FTP password contain one special charecter '#'.it might be the problem for connecting.please clarify regarding this special charecter in the password.i need some information about restricted charecters in the shell script. thanks (5 Replies)
Discussion started by: srivsn
5 Replies
Login or Register to Ask a Question