Need help in sed command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help in sed command
# 1  
Old 01-13-2014
Need help in sed command

Hi,

I am making script in aix server in ksh shell, i have below mentioned file output
Code:
FILE_ID  COUNT(DISTINCT(X.SRC_STMT_UNIQ_ID))  MAX(X.REC_INSERT_TS)  
  ------------------------------------------------------------------
  BARC5300001201401100000000100180628  180628  10-JAN-2014 23:54:07  
  BARC5300001201401100000000200000283  283  10-JAN-2014 22:59:06  
  BARC5300002201401100000000100035646  35646  10-JAN-2014 22:01:20  
  BARC5300002201401100000000200000276  276  10-JAN-2014 22:26:20  
  BARC5310001201401110000000100000001  80  10-JAN-2014 23:04:21  
  BARC5310002201401110000000100000001  23  10-JAN-2014 22:54:46

In above file BARC53000012014011000000001001
80628 replace with ULKB word and second row BARC53000012014011000000002000
00283 replace with ULKB_sold and third row word with EOD and fourth row word with SOD.


But concern in this every word has format whichis



1) In first row word BARC5300001followed with current date(suppose date today is 10th jan 20140110) and then with 00000001and then any number which is in different color

so word become BARC53000012014011000000001001
80628


i use below sed command in script and i am using one variable which keep track of current date


Code:
 d1= `date  +%Y%m%d`



sed 's/BARC5300001$d10000001*/UKBA'  filenmae

but this pattern search string is not working, i did lots of combination, sometime it searches all row and sometime it only replace part of word like below in each row of file.


Please remember every row word has fixed and differnt format , so please help me in patter search string in one row, so that i will make for another row also.



Code:
UKBA00180628  180628  10-JAN-2014 23:54:07


Last edited by bartus11; 01-13-2014 at 05:59 PM.. Reason: Please use code tags.
# 2  
Old 01-13-2014
Please note that variable expansion never happens inside single quotes or strong quotes.

You should use double quotes or weak quotes instead if you want to perform variable expansion.
# 3  
Old 01-13-2014
Hi Yoda,

i also used below command but it replace part of string not all and also select second row word also which has some part same.
Code:
sed  's/BARC5300001'"$d1"'00000001*/UKBA/g'  filename



and output is like this
Code:
UKBA00180628  180628  10-JAN-2014 23:54:07
 UKBA200000283  283  10-JAN-2014 22:59:06     
BARC5300002201401100000000100035646  35646  10-JAN-2014 22:01:20     
BARC5300002201401100000000200000276  276  10-JAN-2014 22:26:20     
BARC5310001201401110000000100000001  80  10-JAN-2014 23:04:21 
    BARC5310002201401110000000100000001  23  10-JAN-2014 22:54:46


Last edited by pallvi_mahajan; 01-13-2014 at 07:15 PM..
# 4  
Old 01-13-2014
Your requirement is not so clear. But here is something based on assumptions:
Code:
sed 's#BARC.......................#UKBA#' file

# 5  
Old 01-14-2014
I have to second Yoda in that it's very difficult to grasp what you want. Guessing and inferring from your samples, I got this proposal to solve your needs:
Code:
sed "s/BARC5300001${d1}00000001[^ ]*/ULKB/;s/BARC5300001${d1}00000002[^ ]*/ULKB_sold/"  file
  ULKB  180628  10-JAN-2014 23:54:07  
  ULKB_sold  283  10-JAN-2014 22:59:06
. . .

Please adapt to your further needs
# 6  
Old 01-14-2014
hi,

thanks a lot,it solved issue, please explain me for using [^]* at end of pattern matching, bcz when i used only * , pattern matched 2 row word instead of only one matching like ur code did

---------- Post updated at 09:48 AM ---------- Previous update was at 05:05 AM ----------

Hi Rudac,

May you please explain for below ?
# 7  
Old 01-14-2014
man regex:
Quote:
An atom followed by '*' matches a sequence of 0 or more matches of the atom.
In this case, the atom is the bracket expression [^ ]. man regex:
Quote:
A bracket expression is a list of characters enclosed in "[]". It normally matches any single character from the list (but see below). If the list begins with '^', it matches any single character (but see below) not from the rest of the list.
So, you get any rest of your string until a space is hit. If your string is not space delimited, amend the bracket expression or use character classes.
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