sed Help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed Help
# 8  
Old 06-18-2013
@anbu: As I see you are pretty conversant with the sed usage, I must let you know that I wouldnt have posted this question at all if I knew the way to write the sed code for my requirement , for which , I clearly quoted in my post requesting you to EXPLAIN what your POST is actually doing at the background. But somehow YOU MIGHT HAVE MISSED THAT POINT.

The positions 6 and 8 are just mere examples , but in real-time , I would be dealing with a file with volume in Gigs , for which I need to REPLACE ALL
CHARACTERS BETWEEN 103 and 108 POSITIONS (BOTH POSITIONS INCLUSIVE) OF EACH LINE WITH A STATIC STRING 00000000000000.


Thanks
Kumarjit.
# 9  
Old 06-18-2013
@kumarjt
No rudeness please, keep in mind that contributor do it on their own time : this deserve a bit of respect : if the given example lack of clarification, you can just politely ask for some.

Code:
sed -n -e 's/\(.\{5\}\)...\(.*\)/\1KUMARJIT\2/p'

-nno output by default except if a corresponding instruction is given (p=print)
-eallow the parsing of extended character set for regular expression
's/pattern/new/'substitute the matched "pattern" with "new"
\(.\{5\}\)match any characters (the dot) and this, repeted 5 times
...match any character followed by any character followed with any character
\(.*\)match any character and this repeated from 0 to any times (in fact, match the rest of the line)
\1refers to what matched what was enclosed in the first \( \)
KUMARJIT"KUMARJIT" as litteral
\2refers to what matched what was enclosed in the second \( \)
pexplicitly print the result since the -n flg was specified

By the way, you may also read
http://pubs.opengroup.org/onlinepubs...ities/sed.html
and
http://pubs.opengroup.org/onlinepubs...html#tag_09_03

Last edited by ctsgnb; 06-18-2013 at 11:31 AM..
# 10  
Old 06-18-2013
Thanks again ctsgnb .Smilie

But I fankly wasnt able to make out the meaning of the following line from quote.

Code:
\1 refers to what matched what was enclosed in the first \( \) 
\2 refers to what matched what was enclosed in the second \( \)

Request you to explain in simple terms ( if possible)

Thanks
Kumarjit.
# 11  
Old 06-18-2013
Here is an exemple that - i hope - will help you to get the \( \) stuff
Code:
# echo "ABC" | sed 's/\(..\)\(.\)/\2-\1/'
C-AB

In fact it's like prenthesis ( ) but for them to be interpreted they need to be escaped with backslash
otherwise they are taken as litteral and not as an operator to delimit a matching string.
# 12  
Old 06-18-2013
BTW Unix sed wants the ^ anchor outside the \( \):
Code:
echo 1234567890 | sed 's/\(^.....\).../\1KUMARJIT/'
1234567890
echo 1234567890 | sed 's/^\(.....\).../\1KUMARJIT/'
12345KUMARJIT90

and is IMHO better readable, too.
For the last requirement, it is
Code:
sed 's/^\(.\{102\}\).\{6\}/\100000000000000/'

.\{6\} is the same as ...... i.e. 6 times any character.
The \( \) marks the first 102 characters, followed by the next 6 characters. Trailing characters are not touched.
The entire match is substituted by \1 ie. the match of the first \( \), followed by 00000000000000.

Last edited by MadeInGermany; 06-18-2013 at 06:12 PM..
This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

I am learning regular expression in sed,Please help me understand the use curly bracket in sed,

I am learning SED and just following the shell scripting book, i have trouble understanding the grep and sed statement, Question : 1 __________ /opt/oracle/work/antony>cat teledir.txt jai sharma 25853670 chanchal singhvi 9831545629 anil aggarwal 9830263298 shyam saksena 23217847 lalit... (7 Replies)
Discussion started by: Antony Ankrose
7 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 inside sed for replacing string

My need is : Want to change docBase="/something/something/something" to docBase="/only/this/path/for/all/files" I have some (about 250 files)xml files. In FileOne it contains <Context path="/PPP" displayName="PPP" docBase="/home/me/documents" reloadable="true" crossContext="true">... (1 Reply)
Discussion started by: linuxadmin
1 Replies

4. Shell Programming and Scripting

How to use sed to replace the a string in the same file using sed?

How do i replace a string using sed into the same file without creating a intermediate file? (7 Replies)
Discussion started by: gomes1333
7 Replies

5. UNIX for Dummies Questions & Answers

SED: Can't Repeat Search Character in SED Output

I'm not sure if the problem I'm seeing is an artifact of sed or simply a beginner's mistake. Here's the problem: I want to add a zero-width space following each underscore between XML tags. For example, if I had the following xml: <MY_BIG_TAG>This_is_a_test</MY_BIG_TAG> It should look like... (8 Replies)
Discussion started by: rhetoric101
8 Replies

6. Shell Programming and Scripting

deleting text records with sed (sed paragraphs)

Hi all, First off, Thank you all for the knowledge I have gleaned from this site! Deleting Records from a text file... sed paragraphs The following code works nearly perfect, however each time it is run on the log file it adds a newline at the head of the file, run it 5 times, it'll have 5... (1 Reply)
Discussion started by: Festus Hagen
1 Replies

7. Shell Programming and Scripting

sed has zeored my files. Help me with sed please

i made a script to update a lot of xml files. to save me some time. Ran it and it replaced all the the files with a 0kb file. The problem i was having is that I am using sed to change xml node <doc_root>. The problem with this is it has a / in the closing xml tag and the stuff inside will also have... (4 Replies)
Discussion started by: timgolding
4 Replies

8. Shell Programming and Scripting

sed over writes my original file (using sed to remove leading spaces)

Hello and thx for reading this I'm using sed to remove only the leading spaces in a file bash-280R# cat foofile some text some text some text some text some text bash-280R# bash-280R# sed 's/^ *//' foofile > foofile.use bash-280R# cat foofile.use some text some text some text... (6 Replies)
Discussion started by: laser
6 Replies

9. Shell Programming and Scripting

Issue with a sed one liner variant - sed 's/ ; /|/g' $TMP1 > $TMP

Execution of the following segment is giving the error - Script extract:- OUT=$DATADIR/sol_rsult_orphn.bcp TMP1=${OUT}_tmp1 TMP=${OUT}_tmp ( isql -w 400 $dbConnect_OPR <<EOF select convert(char(10), s.lead_id) +'|' + s.pho_loc_type, ";", s.sol_rsult_cmnt, ";", +'|'+ s.del_ind... (3 Replies)
Discussion started by: kzmatam
3 Replies

10. Shell Programming and Scripting

Sed Question 1. (Don't quite know how to use sed! Thanks)

Write a sed script to extract the year, rank, and stock for the most recent 10 years available in the file top10_mktval.csv, and output in the following format: ------------------------------ YEAR |RANK| STOCK ------------------------------ 2007 | 1 | Exxon... (1 Reply)
Discussion started by: beibeiatNY
1 Replies
Login or Register to Ask a Question