format file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting format file
# 1  
Old 03-12-2007
format file

Hi
I have a file called a.txt which contain a lot of data. each file used "," to identify. But the 1st, 2nd and 3rd field contain space, can I delete it and the 5th fileld is about mins, but the original format used ".", I would like to change to mm:ss (example 11.33 changed to 11:33, 0 changed to 00:00, 9.23 changed to 09:23). Can help?

11111 ,client ,customer , 2859, 11.33, 8, 21.57, 252.62
11112 ,client ,customer , 2860, 26.43, 8, 7.82, 91.62
11113 ,client ,customer , 2861, 48.27, 25, 64.55, 753.82
11113 ,client ,customer , 2862, 56.45, 18, 51.64, 603.06
11114 ,client ,customer , 2872, 8.87, 5, 8.89, 103.78
11115 ,client ,customer , 2875, .00, 1, .26, 3.00
11116 ,client ,customer , 2878, 36.22, 18, 54.94, 641.54
11117 ,client ,customer , 2881, 1.30, 2, 2.07, 24.22
11111 ,client ,customer , 2883, 12.05, 8, 16.39, 191.34
11111 ,client ,customer , 2879, .00, 0, .00, .00
11111 ,client ,customer , 2873, .00, 0, .00, .00
11111 ,client ,customer , 2871, .00, 0, .00, .00
# 2  
Old 03-12-2007
Code:
sed 's/ ,/, /g;s/\./:/' file

# 3  
Old 03-12-2007
Hi,
Use this code.....the output goes to file named "err"
I have put the input in a file named as "Input.txt"
cat Input.txt | awk -F, '{
for(i=1;i<=NF;i++)
{
if(i<=3)
{
sub(/ $/,"",$i);
printf("%s,",$i);
}
else if(i==5)
{
split($i,temp,".");
printf("%02d:%02d,",temp[1],temp[2]);
}
else
{
printf("%s,",$i);
}
}
printf("\n");
}' > err

Thanks
Raghu
# 4  
Old 03-12-2007
Quote:
Originally Posted by matrixmadhan
Code:
sed 's/ ,/, /g;s/\./:/' file

nothing change..after run the statement.. Smilie
# 5  
Old 03-12-2007
Code:
>cat file
11111 ,client ,customer , 2859, 11.33, 8, 21.57, 252.62
11112 ,client ,customer , 2860, 26.43, 8, 7.82, 91.62
11113 ,client ,customer , 2861, 48.27, 25, 64.55, 753.82
11113 ,client ,customer , 2862, 56.45, 18, 51.64, 603.06
11114 ,client ,customer , 2872, 8.87, 5, 8.89, 103.78
11115 ,client ,customer , 2875, .00, 1, .26, 3.00
11116 ,client ,customer , 2878, 36.22, 18, 54.94, 641.54
11117 ,client ,customer , 2881, 1.30, 2, 2.07, 24.22
11111 ,client ,customer , 2883, 12.05, 8, 16.39, 191.34
11111 ,client ,customer , 2879, .00, 0, .00, .00
11111 ,client ,customer , 2873, .00, 0, .00, .00
11111 ,client ,customer , 2871, .00, 0, .00, .00


Code:
>sed 's/ ,/, /g;s/\./:/' file
11111, client, customer,  2859, 11:33, 8, 21.57, 252.62
11112, client, customer,  2860, 26:43, 8, 7.82, 91.62
11113, client, customer,  2861, 48:27, 25, 64.55, 753.82
11113, client, customer,  2862, 56:45, 18, 51.64, 603.06
11114, client, customer,  2872, 8:87, 5, 8.89, 103.78
11115, client, customer,  2875, :00, 1, .26, 3.00
11116, client, customer,  2878, 36:22, 18, 54.94, 641.54
11117, client, customer,  2881, 1:30, 2, 2.07, 24.22
11111, client, customer,  2883, 12:05, 8, 16.39, 191.34
11111, client, customer,  2879, :00, 0, .00, .00
11111, client, customer,  2873, :00, 0, .00, .00
11111, client, customer,  2871, :00, 0, .00, .00

If you are expecting a change in the original input file then,

Code:
sed 's/ ,/, /g;s/\./:/' file > tmpfile
mv tmpfile file

else use the -i option if available in the sed version that you are using.

Rest, it works fine for me
# 6  
Old 03-12-2007
Quote:
Originally Posted by Raghuram.P
Hi,
Use this code.....the output goes to file named "err"
I have put the input in a file named as "Input.txt"
cat Input.txt | awk -F, '{
for(i=1;i<=NF;i++)
{
if(i<=3)
{
sub(/ $/,"",$i);
printf("%s,",$i);
}
else if(i==5)
{
split($i,temp,".");
printf("%02d:%02d,",temp[1],temp[2]);
}
else
{
printf("%s,",$i);
}
}
printf("\n");
}' > err

Thanks
Raghu
thx!, the time can chanted to mm:ss. But the space cannot delete in 1st,2nd and 3rd field (not just one space in each field - may be 1 to many)...why?

Last edited by happyv; 03-12-2007 at 02:49 AM..
# 7  
Old 03-12-2007
HI,
I have cobined what matrixmadhan has posted and my answer and that works fine for me.
Here is what i used
cat Input.txt | sed 's/ ,/, /g' | awk -F, '{
for(i=1;i<=NF;i++)
{
if(i==5)
{
split($i,temp,".");
printf("%02d:%02d,",temp[1],temp[2]);
}
else
{
printf("%s,",$i);
}
}
printf("\n");
}' > err

Thanks
Raghuram
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to generate Excel file or to SQL output data to Excel format/tabular format

Hi , i am generating some data by firing sql query with connecting to the database by my solaris box. The below one should be the header line of my excel ,here its coming in separate row. TO_CHAR(C. CURR_EMP_NO ---------- --------------- LST_NM... (6 Replies)
Discussion started by: dani1234
6 Replies

2. Shell Programming and Scripting

Need help to format one txt file to required format

Hello Everyone, I have one source file which is genarated by SAP in different format(Which I've never seen). I need to convert that file to required format and I need to read this target file from Datastage to use this in my Jobs. So I do not have any other options except to use Unix script to... (4 Replies)
Discussion started by: Prathyu
4 Replies

3. Shell Programming and Scripting

Converting windows format file to unix format using script

Hi, I am having couple of files which i used to copy from windows to Linux, so now in case of text files (CTRL^M) appears at end of line. I know i can convert this windows format file to unix format file by running dos2unix. My requirement here is that i want to do it automatically using a... (5 Replies)
Discussion started by: sarbjit
5 Replies

4. Shell Programming and Scripting

Convert UNIX file format to PC format

Hi All, Is there any way to convert a file which is in UNIX format to a PC format.... Flip command can be used , apart form this command can we have any other way.... like usinf "awk" etc ..... main purpose of not using flip is that my Kshell doesnot support this comamnd.... (2 Replies)
Discussion started by: Samtel
2 Replies

5. UNIX for Dummies Questions & Answers

Convert UNIX file format to PC format

Hi All, Is there any way to convert a file which is in UNIX format to a PC format.... Flip command can be used , apart form this command can we have any other way.... like usinf "awk" etc ..... main purpose of not using flip is that my Kshell doesnot support this comamnd.... (1 Reply)
Discussion started by: Samtel
1 Replies

6. Shell Programming and Scripting

Convert Epoch time format to normal date time format in the same file

I have a file named "suspected" with series of line like these : {'protocol': 17, 'service': 'BitTorrent KRPC', 'server': '219.78.120.166', 'client_port': 52044, 'client': '10.64.68.44', 'server_port': 8291, 'time': 1226506312L, 'serverhostname': ''} {'protocol': 17, 'service': 'BitTorrent... (3 Replies)
Discussion started by: rk4k
3 Replies

7. Shell Programming and Scripting

AWK CSV to TXT format, TXT file not in a correct column format

HI guys, I have created a script to read 1 column in a csv file and then place it in text file. However, when i checked out the text file, it is not in a column format... Example: CSV file contains name,age aa,11 bb,22 cc,33 After using awk to get first column TXT file... (1 Reply)
Discussion started by: mdap
1 Replies

8. UNIX for Dummies Questions & Answers

To convert multi format file to a readable ascii format

Hi I have a file which has ascii , binary, binary decimal coded,decimal & hexadecimal data with lot of special characters (like öƒ.ƒ.„İİ¡Š·œƒ.„İİ¡Š· ) in it. I want to standardize the file into ASCII format & later use that as source . Can any one suggest a way a logic to convert such... (5 Replies)
Discussion started by: gaur.deepti
5 Replies

9. UNIX for Dummies Questions & Answers

Convert UTF8 Format file to ANSI format

:confused: Hi i am trying to convert a file which is in UTF8 format to ANSI format i tried to use the function ICONV but it is throwing error Function i used it as $ iconv -f UTF8 -t ANSI filename Error iam getting is NOT Supported UTF8 to ANSI please some help me out on... (9 Replies)
Discussion started by: rajreddy
9 Replies

10. UNIX for Advanced & Expert Users

Convert UTF8 Format file to ANSI format

:) Hi i am trying to convert a file which is in UTF8 format to ANSI format i tried to use the function ICONV but it is throwing error Function i used it as $ iconv -f UTF8 -t ANSI filename Error iam getting is NOT Supported UTF8 to ANSI please some help me out on this.........Let me... (1 Reply)
Discussion started by: rajreddy
1 Replies
Login or Register to Ask a Question