Sponsored Content
Top Forums Shell Programming and Scripting substitute a string on a specific position for specific lines Post 302480599 by ctsgnb on Wednesday 15th of December 2010 10:22:45 AM
Old 12-15-2010
@anurag

Ooops, you are true, i totally forgot that position case ... here is an even better
- need caret ^ to be exact regarding the position otherwise the \(.....<n_times>\)TOCHANGE could also be match at a position greater than the expected one
- use the $! tip to avoid last line)
- therefore avoid the use of additionnal file opening & line counting of the wc -l
- no need of sed -e option

Code:
sed '3s/^\(...........\)TOCHANGE\(.*\)/\1ABCABCAB\2/;$!{4,$s/^\(........\)TOCHANGE\(.*\)/\1ABCABCAB\2/}' infile

Code:
# cat tst1
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
# cat tst2
12345678TOCHANGE12345
12345678TOCHANGE12345
12345678TOCHANGE12345
12345678TOCHANGE12345
12345678TOCHANGE12345
12345678TOCHANGE12345
12345678TOCHANGE12345
# sed '3s/^\(...........\)TOCHANGE\(.*\)/\1ABCABCAB\2/;$!{4,$s/^\(........\)TOCHANGE\(.*\)/\1ABCABCAB\2/}' tst1
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901ABCABCAB12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
12345678901TOCHANGE12345
# sed '3s/^\(...........\)TOCHANGE\(.*\)/\1ABCABCAB\2/;$!{4,$s/^\(........\)TOCHANGE\(.*\)/\1ABCABCAB\2/}' tst2
12345678TOCHANGE12345
12345678TOCHANGE12345
12345678TOCHANGE12345
12345678ABCABCAB12345
12345678ABCABCAB12345
12345678ABCABCAB12345
12345678TOCHANGE12345


Last edited by ctsgnb; 12-15-2010 at 11:52 AM.. Reason: forgot the caret ^
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to add character in specific position of a string?

Hi All, I would like to use sed to add "-" between the following string: Value: 20060830 Result: 2006-08-30 Pls advice. Thx a lot Victor (5 Replies)
Discussion started by: victorlung
5 Replies

2. Shell Programming and Scripting

Print lines with search string at specific position

Hi Folks, I have a file with all fields defined by byte position, but any field can be empty so I cannot print lines based on a search of specific columns. I need to print all lines of this file where the string of two characters at byte position 100-101 contains the number 27. Any ideas? ... (4 Replies)
Discussion started by: HealthyGuy
4 Replies

3. Shell Programming and Scripting

check position of end of line for some specific lines

-------------------------------------------------------------------------------- Have to check in a file that the lines starting with 620 and 705 are ending at same posiotin. 82012345 62023232323 70523949558 62023255454 9999 In the above lines, i have to check the lines starting... (1 Reply)
Discussion started by: senthil_is
1 Replies

4. Shell Programming and Scripting

Substitute specific lines with lines from another file

Hello All, I am new to this forum. I am currently facing a problem in manipulating files. I have two files called old-matter and new-matter # cat old-matter abc: this, is a, sample, entry byi: white board, is white in color rtz: black, board is black qty: i tried, a lot asd: no... (1 Reply)
Discussion started by: rahmathulla
1 Replies

5. Shell Programming and Scripting

search a line and insert string into specific at position

Hi, guys. I have one question: How can I search for a line with certain string in it and then insert a string into this line? For example: There is a file called shadow, the contents of it are below: ************************** ... yuanz:VIRADxMsadfDF/Q:0:0:50:7:::... (9 Replies)
Discussion started by: daikeyang
9 Replies

6. Shell Programming and Scripting

Print lines with specific character at nth position in a file

I need to print lines with character S at nth position in a file...can someone pl help me with appropriate awk command for this (2 Replies)
Discussion started by: manaswinig
2 Replies

7. Shell Programming and Scripting

Print lines with specific character at nth position in a file

I need to print lines with character S at nth position in a file...can someone pl help me with appropriate awk command for this (1 Reply)
Discussion started by: manaswinig
1 Replies

8. Shell Programming and Scripting

Using sed to replace specific character and specific position

I am trying to use sed to replace specific characters at a specific position in the file with a different value... can this be done? Example: File: A0199999123 A0199999124 A0199999125 Need to replace 99999 in positions 3-7 with 88888. Any help is appreciated. (5 Replies)
Discussion started by: programmer22
5 Replies

9. Shell Programming and Scripting

AWK or SED to add string at specific position

Greetings. I don't have experience programing scripts. I need to insert a string in a specific position of another string on another file (last.cfg), for example: File last.cfg before using script: login_interval=1800 lcs.machinename=client04 File last.cfg after using script:... (4 Replies)
Discussion started by: vanesuke
4 Replies

10. Shell Programming and Scripting

Using sed to replace a string in a specific position

I asked this before, but my problem got more complicated. Heres what I am trying to do: I'm trying to replace a string at a certain location with another string. Heres the file I'm trying to change: \E I want to replace the escape code at the 3rd line, 2nd column with this escape code... (3 Replies)
Discussion started by: tinman47
3 Replies
MB_STRPOS(3)								 1							      MB_STRPOS(3)

mb_strpos - Find position of first occurrence of string in a string

SYNOPSIS
int mb_strpos (string $haystack, string $needle, [int $offset], [string $encoding = mb_internal_encoding()]) DESCRIPTION
Finds position of the first occurrence of a string in a string. Performs a multi-byte safe strpos(3) operation based on number of characters. The first character's position is 0, the second character position is 1, and so on. PARAMETERS
o $haystack - The string being checked. o $needle - The string to find in $haystack. In contrast with strpos(3), numeric values are not applied as the ordinal value of a character. o $offset - The search offset. If it is not specified, 0 is used. o $encoding -The $encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used. RETURN VALUES
Returns the numeric position of the first occurrence of $needle in the $haystack string. If $needle is not found, it returns FALSE. SEE ALSO
mb_internal_encoding(3), strpos(3). PHP Documentation Group MB_STRPOS(3)
All times are GMT -4. The time now is 12:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy