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
set_color(1)							       fish							      set_color(1)

NAME
set_color - set_color - set the terminal color set_color - set the terminal color Synopsis set_color [-v --version] [-h --help] [-b --background COLOR] [COLOR] Description Change the foreground and/or background color of the terminal. COLOR is one of black, red, green, brown, yellow, blue, magenta, purple, cyan, white and normal. o -b, --background Set the background color o -c, --print-colors Prints a list of all valid color names o -h, --help Display help message and exit o -o, --bold Set bold or extra bright mode o -u, --underline Set underlined mode o -v, --version Display version and exit Calling set_color normal will set the terminal color to whatever is the default color of the terminal. Some terminals use the --bold escape sequence to switch to a brighter color set. On such terminals, set_color white will result in a grey font color, while set_color --bold white will result in a white font color. Not all terminal emulators support all these features. This is not a bug in set_color but a missing feature in the terminal emulator. set_color uses the terminfo database to look up how to change terminal colors on whatever terminal is in use. Some systems have old and incomplete terminfo databases, and may lack color information for terminals that support it. Download and install the latest version of ncurses and recompile fish against it in order to fix this issue. Version 1.23.1 Sun Jan 8 2012 set_color(1)
All times are GMT -4. The time now is 10:58 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy