Format Output


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Format Output
# 1  
Old 02-28-2011
Format Output

Hello Learned People,

Good evening. I have absolutely no idea as how to do this & I admit that I do not know anything in unix. I must learn this one of these days.

Im a help desk incharge today & someone gave me this file to be formatted & I have a file like this.
Code:
vi NewFile.txt
232 Users In the forum on 12212010 on Machine KCYKCK
12   Users validating on 12312010 since morning on machine STLSTL
82   Users browsing on 02022011 At 12 Am on POMCMMC
23222 The number of people on 02182011 on machine RRUDJD

and would like to see the output as follows -
Code:
    232,    Users In the forum on,     12212010,    on Machine KCYKCK.
      12,    Users validating on,        12312010,    since morning on machine STLSTL.
      82,    Users browsing on,          02022011,    At 12 Am on POMCMMC
 23222,    The number of people on, 02182011,    on machine RRUDJD.

To be specific, they need the output to be formatted and at the end of each meaningful text (which you folks call as regular expression pattern) there has to be a comma. Now how you define meaningful text is as follows -

The first would always be numbers,
The second would be string(non number value),
The third would be a date value,
The fourth would be another string(non number value),
& finally the machine name.

Although, Im old & totally new to this unix env, I tried the following,
Code:
echo newfile.txt | awk '{print $1 "," $2, $3, $4, $5, $6,",""\t""\t" $7,",""\t", ","$8, "\t" }'

But does not even come close to what is being asked for. I would have been successful with this even if there were text with the same number of column values and unfortunately, the text is not like that Smilie

I can sit here & do this the donkey way by going through line by line but as I knew a bit of programming, I thought I could do this in unix but Im scratching my head off on this one.

Any help is appreciated.

Btw, Is it even possible ? Show me the way

regards,
Tan.

Last edited by fpmurphy; 02-28-2011 at 10:27 PM.. Reason: code tags please!
# 2  
Old 02-28-2011
Does this work for you?
Code:
sed -r 's/(^[0-9]+) ([^0-9].+) ([0-9]{8}) (.*)/\1, \2, \3, \4./' file
232, Users In the forum on, 12212010, on Machine KCYKCK.
12, Users validating on, 12312010, since morning on machine STLSTL.
82, Users browsing on, 02022011, At 12 Am on POMCMMC.
23222, The number of people on, 02182011, on machine RRUDJD.

# 3  
Old 02-28-2011
yinyuemi,

Hello !

Thank you for taking time to write back about my question. Im seeing the following error message.

regards,
Tan.

sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]

---------- Post updated at 09:42 PM ---------- Previous update was at 09:35 PM ----------

yinyuemi,

Took the liberty of changing r to e & n and I see the following msg Smilie

sed: 1: "s/(^[0-9]+) ([^0-9].+) ...": \1 not defined in the RE


regards,
Tan.
# 4  
Old 02-28-2011
Try...
Code:
sed 's/\(^[0-9]*\) *\([^0-9]*\) *\([0-9]*\) */\1,\2,\3,/' file

# 5  
Old 02-28-2011
try:
it's very similiar to Ygor's code
Code:
sed 's/\(^[0-9]*\) \([^0-9].*\) \([0-9]\{8\}\) \(.*\)/\1, \2, \3, \4./' file


Last edited by yinyuemi; 02-28-2011 at 11:19 PM..
# 6  
Old 02-28-2011
Ygor / yinyuemi,

Here is the output that has resulted in.

This is lot better than what I can do as it was giving me carpel tunnel.

Is there any way that you can improvise upon this and remove the ,, in the front and strangely, this is happening on all lines with less than 1000 number in the front or is that asking too much ?

Also, can u educate me as to what you guys are doing here.

Once again, if you are busy, THANK YOU very much.

regards,
Tan.


,,232, Users In the forum on, 12212010, on Machine KCYKCK.
,,12, Users validating on, 12312010, since morning on machine STLSTL.
,, 82, Users browsing on, 02022011, At 12 Am on POMCMMC
23222, The number of people on, 02182011, on machine RRUDJD.
2455, The People on, 01272011, on machine FRDUF....
# 7  
Old 02-28-2011
I have no idea why your output happened like that, however, in my computer, it works.

using sed to make a pattern match of your data.

Code:
echo "232 Users In the forum on 12212010 on Machine KCYKCK
12   Users validating on 12312010 since morning on machine STLSTL
82   Users browsing on 02022011 At 12 Am on POMCMMC
23222 The number of people on 02182011 on machine RRUDJD" |sed 's/\(^[0-9]*\) \([^0-9].*\) \([0-9]\{8\}\) \(.*\)/\1, \2, \3, \4./'
232, Users In the forum on, 12212010, on Machine KCYKCK.
12,   Users validating on, 12312010, since morning on machine STLSTL.
82,   Users browsing on, 02022011, At 12 Am on POMCMMC.
23222, The number of people on, 02182011, on machine RRUDJD.

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Format output

Hello Team, I have the following details in a txt file (please note the spaces and tabs) C1 C2 C3 ------------------ --------------- ------------- abc, xyz 2 8 pqr 2 ... (9 Replies)
Discussion started by: H squared
9 Replies

2. Shell Programming and Scripting

Format with output

I have written some scripts that resulted in the table below (Column1 is ITEM, Column2 is Group, Column3 is Category and Column4 is Quantity) but I want the output in another format: Input: K123 X CATA 3 K123 Y CATA 4 K123 Z CATA 2 K123 X CATB 5 K123 Y CATB 2 K123 Z CATB 2 B65 M CATB... (7 Replies)
Discussion started by: aydj
7 Replies

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

4. Shell Programming and Scripting

Dynamic output file generation using a input text file with predefined output format

Hi, I have two files , one file with data file with attributes that need to be sent to another file to generate a predefined format. Example: File.txt AP|{SSHA}VEEg42CNCghUnGhCVg== APVG3|{SSHA}XK|"password" AP3|{SSHA}XK|"This is test" .... etc --------- test.sh has... (1 Reply)
Discussion started by: hudson03051nh
1 Replies

5. UNIX for Advanced & Expert Users

format df -k output

i am running df -k command on aix machine. i got the output like this. i need to store into file and send that file into microsoft excel.i need to allign properly. Filesystem 512 blocks Free % Used Iused %Iused Mounted on /dev/hd4 262144 126488 52% ... (9 Replies)
Discussion started by: wintercoat
9 Replies

6. Shell Programming and Scripting

Help in Getting specified output format

Hi all, I have input text file of this format objectclass:endeavor pid:12345 postalAddress:379 PROSPECT ST street:STE B l:TORRINGTON st:CT postalCode:067905238 telephoneNumber:9999999999... (2 Replies)
Discussion started by: pintoo
2 Replies

7. Shell Programming and Scripting

How to format output

Dear all, I have written a program which access database and displays the values returned by the query . There are 10 columns to be displayed in one row. But am ending with 5 lines displayed on 1st line and the next 5 in the 2nd line. Ex : 21608 10-20-2007 148 Al's Appliance... (7 Replies)
Discussion started by: uday542
7 Replies

8. Shell Programming and Scripting

capturing output from top and format output

Hi all, I'd like to capture the output from the 'top' command to monitor my CPU and Mem utilisation.Currently my command isecho date `top -b -n1 | grep -e Cpu -e Mem` I get the output in 3 separate lines.Tue Feb 24 15:00:03 Cpu(s): 3.4% us, 8.5% sy .. .. Mem: 1011480k total, 226928k used, ....... (4 Replies)
Discussion started by: new2ss
4 Replies

9. Shell Programming and Scripting

format output

I have a text file that I want a script to parse and grab only the relavent stuff. No idea where to start.. This is the text file.212 0.00000 ? -> (multicast) ETHER Type=2000 (Unknown), size = 344 bytes 0: 0100 0ccc cccc 000b 5f95 0fbe 014a aaaa ........_....J..... (7 Replies)
Discussion started by: Tornado
7 Replies

10. UNIX for Dummies Questions & Answers

ls output format

below is the output is ls -l -rw-r--r-- 1 tonyt staff 3212 Apr 17 1999 file1 -rw-r--r-- 1 tonyt staff 4541 Mar 3 21:08 file2 why the date format is not the same? (6 Replies)
Discussion started by: tonyt
6 Replies
Login or Register to Ask a Question