Need help with sed command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help with sed command
# 1  
Old 07-23-2010
Need help with sed command

Hi gurus,
I have a requirement where I need to parse a string for a pattern and drop it if that pattern occurs. Here's my requirement:

Input data:

Code:
record start
  string("|" ) number = NULL("");
  date("YYYYMMDD")("|") start_date = NULL("");
  decimal("|") type  = NULL("");
  string("\n") name = NULL("");
end;


My output that I need is :

Code:
string number
date start_date
decimal type
string name

So basically I need to output just the column type and column name in my output. I dont care if the delimiter b/w two fields is a space or pipe or anything... I was trying to use sed and drop the pattern start from ( till ) and print first two fields but it didnt work.

Any help is appreciated.
Thanks,
Carl

Last edited by radoulov; 07-23-2010 at 05:41 PM.. Reason: Code tags, please!
# 2  
Old 07-23-2010
This should work, if your sed implementation recognizes re-interval {n, m}:
Code:
sed -n '
  s/^ *\([^(]*\)\(([^)]*)\)\{1,\} *\([^=]*\).*/\1 \3/p
  ' infile


If this doesn't work, try Perl:


Code:
perl -lne'
  /^\s*([^(]*)(?:\([^)]*\)\s*)+\s*([^=]*)/ and
    print "$1 $2"
  ' infile

# 3  
Old 07-24-2010
Code:
[house@leonov] cat data | sed 's/ //g' | awk -F "[()=]" '{if (NF>6) {print $1,$5} else {print $1,$3}}'
string number
date start_date
decimal type
string name

# 4  
Old 07-24-2010
Thank you both for your solutions.
# 5  
Old 07-24-2010
Code:
linux$ sed 's/= NULL.*//;s/(.[^ \t]* *)//;/record\|end/d' file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Output of sed command to another sed command

Hi All, I'm relatively new to Unix scripting and am trying to get my head around piping. I'm trying to take a header record from one file and prepend it to another file. I've done this by creating several temp files but i'm wondering if there is a cleaner way to do this. I'm thinking... (10 Replies)
Discussion started by: BigCroyd
10 Replies

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

3. Shell Programming and Scripting

sed Command

Hello, I'm working with this command which I'm having trouble understanding it: sed -e '1,$ s/SUB/N/g' < $1 > file.txt Where SUB stand for an special character with code in ASCII is 0x1A, notepad read it as a right arrow. Any help will be appreciated. (5 Replies)
Discussion started by: emilioveras
5 Replies

4. Shell Programming and Scripting

sed returns error "sed: -e expression #1, char 18: unterminated `s' command"

Hello All, I have something like below LDC100/rel/prod/libinactrl.a LAA2000/rel/prod/libinactrl.a I want to remove till first forward slash that is outputshould be as below rel/prod/libinactrl.a rel/prod/libinactrl.a How can I do that ??? (8 Replies)
Discussion started by: anand.shah
8 Replies

5. UNIX for Advanced & Expert Users

sed command

Hi..... I'm using sed command for replace the words in a file cat >test.txt My test.txt contains Mary had a little ham Mary fried a lot of spam Jack ate a Spam sandwich Jill had a lamb spamwich Marry had a spicy wich $ sed 's/wich$/mirchi/g' test.txt output is: Mary had a little ham... (24 Replies)
Discussion started by: ksrivani
24 Replies

6. UNIX for Dummies Questions & Answers

sed insert command and variable expansion/command substitution

I know this script is crummy, but I was just messing around.. how do I get sed's insert command to allow variable expansion to show the filename? #!/bin/bash filename=`echo $0` /usr/bin/sed '/#include/ { i\ the filename is `$filename` }' $1 exit 0 (8 Replies)
Discussion started by: glev2005
8 Replies

7. Shell Programming and Scripting

Convert Sed command to perl command

Hello, Can any perl experts help me convert my sed string to perl. I am unsuccessful with this. I have to remove this string from html files OAS_AD('Top'); I have come up with this. However the requirement is in perl. for find in $(find . -type f -name "file1.html") ; do cat $find |... (2 Replies)
Discussion started by: abacus
2 Replies

8. UNIX for Dummies Questions & Answers

some help with the sed command please

hi all, attached you can find a small txt file ( .txt ), GIVEN that past_scheduler="islip" and scheduler="mucf" can somebody please tell me WHY sed 's/-u '$past_scheduler'/-u '$scheduler'/g' .txt > .txt.temp fails ? thanx (3 Replies)
Discussion started by: OneDreamCloser
3 Replies

9. Shell Programming and Scripting

Loop with sed command to replace line with sed command in it

Okay, title is kind of confusion, but basically, I have a lot of scripts on a server that I need to replace a ps command, however, the new ps command I'm trying to replace the current one with pipes to sed at one point. So now I am attempting to create another script that replaces that line. ... (1 Reply)
Discussion started by: cbo0485
1 Replies

10. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies
Login or Register to Ask a Question