awk or sed help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk or sed help
# 1  
Old 08-18-2013
awk or sed help

Hi Help,

I hope you guys are doing good!

I have an input file which looks like

Code:
11 12 13 16 17 |$678.09 78 p|
11 12 13 16 17 |     8.09278 p|
11 12 13 16 17 |3678             |

I want the op file to look like
Code:
$678.09078p0008.09278p36780000000

i.e only to print the characters within |&|(within the pipes) and to replace all the blank space within pipe by 0.The number of chars within th pipe are constant and here it is 11.

Is it possible.?

Thanks a lot in advance

Cheers!!
Moderator's Comments:
Mod Comment Having multiple adjacent spaces in your input and not using CODE tags makes it impossible for readers of this thread to understand what you are trying to do. You have been asked to use CODE tags multiple times and seem to think it is OK to ignore this request to make it possible for the volunteers reading your posts to clearly see what you are talking about.
If you continue to ignore the rules, you will likely be banned from posting more requests.

Last edited by Don Cragun; 08-18-2013 at 06:52 AM.. Reason: Added CODE tags.
# 2  
Old 08-18-2013
Some like this?
One space "" is replaced by one 0
In your output you have multiple 0, not sure why.

Code:
awk -F\| '{gsub(/ /,"0");print $2} END {print "\n"}' ORS= file
$678.090780p08.092780p36780

This User Gave Thanks to Jotne For This Post:
# 3  
Old 08-18-2013
Please use code tags as required by forum rules!

The number of chars within the pipe is not constant and it is not 11. Your output does not meet your requirements.

Try
Code:
awk -F\| '{gsub(/ /,"0",$2); printf "%s", $2} END {printf"\n"}' file
$678.090780p8.09278p3678

EDIT: Tried to interpret your desired output a bit more; still it doesn't fit what you require, but try:
Code:
awk -F\| '{$2=sprintf ("%-11s", $2); gsub(/ /,"0",$2); printf "%s", $2} END {printf"\n"}' file
$678.090780p08.092780p036780000000


Last edited by RudiC; 08-18-2013 at 07:57 AM.. Reason: typo
This User Gave Thanks to RudiC For This Post:
# 4  
Old 08-18-2013
Thanks to both RudiC and Jotne for helping out!!!
Have a great day1!
# 5  
Old 08-18-2013
Jotne and RudiC were confused because the original posting in this thread did not originally contain CODE tags. I have added CODE tags for you, but I agree with RudiC; the number of characters between the pipe symbols in your input lines is not a constant and is not 11 in any of your sample input lines. The number of characters between the pipe symbols is 12, 14, and 17 characters, respectively.

Replacing each space in your input with a "0" and adding a <newline> at the end produces the output:
Code:
$678.090780p000008.092780p36780000000000000

which is similar to, but certainly not the same as the output you said should be produced:
Code:
$678.09078p0008.09278p36780000000

The characters printed in red do not appear in what you say the output should be. I don't see a clear pattern to describe what spaces you want converted to zeros and what spaces you want to be deleted.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

2. Shell Programming and Scripting

Is this possible using SED and AWK?

Dear Geeks, I want to manipulate a file with certain modifications for that using sed or AWK how to do this process for one file i have this type of data. Input File: "Restricted and Reserved names .ANISH",3798,"TEST.CO",1201208,6/16/10 0:00,6/16/13 0:00,,,"CO","2nd"^M "Restricted and... (4 Replies)
Discussion started by: anishkumarv
4 Replies

3. UNIX for Dummies Questions & Answers

sed/awk or help please

I have a file that contain the data below: B1 1 2 3 B2 20 30 40 B3 7 8 B4 100 B5 21 22 23How can I retrieve the data for B1 into a seperate file. (8 Replies)
Discussion started by: bobo
8 Replies

4. Shell Programming and Scripting

Need help using awk or sed.

Hi All, Is there a way of comparing two columns in the same file and deleting the row if the values of the columns match. I have the sample data file as below. M024900|175309.00|968.00|17 M025001|19861.79|97.90|148 M025002|431.70|159.00|3 M025003|912.30|159.90|6 ... (6 Replies)
Discussion started by: nua7
6 Replies

5. Shell Programming and Scripting

Using sed or awk?

What if I wanted to add a word such as IT after the first character and if theres 3 characters, after the 2nd character? output would be: G, it H G, H it P G, H, P it L I'm thinking that AWK would be the easiest way to do this... Currently looking it up. Right now I'm using awk but I... (13 Replies)
Discussion started by: puttster
13 Replies

6. UNIX for Dummies Questions & Answers

sed or awk?

I've got an inventory database with eight columns with things like product name, manufacturer, UPC code, etc. on each line. Our PO (purchase order) number is in the first column. I can grep the date and get the full line of data but I would like to strip out everything but the PO number in the... (5 Replies)
Discussion started by: NetJones
5 Replies

7. UNIX for Advanced & Expert Users

Awk or Sed help

Hi, I have a data file with 5 columns - like this: "20080401 09:43:08.770798 +0100s","TEST 1","R 1","A TEST","Nov 27 2007","1" "20080401 09:43:08.770798 +0100s","THIS IS A TEST","R 2","B TEST","Nov 30 2007","10" "20080401 09:43:08.770798 +0100s","ANOTHER TEST","R 3","B TEST","Nov 05... (7 Replies)
Discussion started by: MrG-San
7 Replies

8. UNIX for Advanced & Expert Users

sed in awk ? or nested awk ?

Hey all, Can I put sed command inside the awk action ?? If not then can i do grep in the awk action ?? For ex: awk '$1=="174" { ppid=($2) ; sed -n '/$ppid/p' tempfind.txt ; }' tempfind.txt Assume: 174 is string. Assume: tempfind.txt is used for awk and sed both. tempfind.txt... (11 Replies)
Discussion started by: varungupta
11 Replies

9. Shell Programming and Scripting

sed,awk

Hi, I know sed is stream text editor and not a bit more than that. Can anyone explain its usage and advantages? How is awk different from sed? I donno i am a bit confused about it. But i have coded in awk and shell. Thanks, Nisha :confused: (7 Replies)
Discussion started by: Nisha
7 Replies

10. Shell Programming and Scripting

awk / sed

I have many messages such as the test message below: 00:00000:00021:2002/05/13 13:57:00.51 ERROR:- Test error, my test error!!! I am writing a script in which I need to get everything from the word "ERROR:-" onwards. I normally use awk for these things, but I am not an expert at it so i am... (6 Replies)
Discussion started by: baileyr1
6 Replies
Login or Register to Ask a Question