Replace last n lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace last n lines
# 8  
Old 12-30-2018
Code:
vim "-cnorm G2k ci'smb_dynamic bsd z resolv rt" "-cnorm Gk ci'dl ls" +wq reptest

# 9  
Old 12-30-2018
Quote:
Originally Posted by onenessboy
how can i do it with unix command instead of manually editing file.
You seem to want to automatically update some sort of source-code. There is a specialised utility for that, it is called patch. In general it is fed a diff-output file and applies this diff to a sourcce file. This is the common way to update the source in a source-rpm to a higher version. The update will contain all the diffs which, when applied to an older version, give you the newer version. The man page of patch is rather exhaustive, so i suggest to read it carefully. If there are still questions please do not hesitate to raise them.

If you just want to replace fixed lines with a fixed text you could create a "changes-file" that might look like this:

Code:
<line-nr>|replacement-text

i.e.
Code:
25|replacement1
27|replacement2

and feed it the following script, which just an infinitely dumb version of patch:

Code:
#! /bin/ksh

typeset    fIn="/some/input/file"
typeset    fOut="/some/output/file"
typeset    fChanges="/file/with/the/changes/as/mentioned"
typeset -i iLine=0
typeset    chLine=""
typeset    fTmp="/tmp/myscript.$$"


cp "$fIn" "$fTmp"
while IFS="|" read iLine chLine ; do
     if sed "$iLine"' s/.*/'"$chLine"'/' "$fTmp" > "$fOut" ; then
          cp  "$fOut" "$fTmp"
     else
          exit 1
     fi
done < "$fChanges"

exit 0

Notice that in this case the replacement text must not contain regexes, i.e. backreferences like \1

I hope this helps.

bakunin

Last edited by RudiC; 12-31-2018 at 06:07 AM.. Reason: "path" & "answer" typos
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Replace character in odd or even lines

Hello, I'm here again asking for your precious help. I'm writing some code to convert csv files to html. I want to highlight header and also I want to have rows with alternate colors. So far this is my work###Let's format first line only with some color cat $fileIN".tmp1" | sed '1... (7 Replies)
Discussion started by: emare
7 Replies

2. UNIX for Dummies Questions & Answers

How can I replace the lines that start with a star and replace it with numbers start from 1?

I need to replace the (*) in the fist of a list with numbers using sed for example > this file contain a list * linux * computers * labs * questions to >>>> this file contain a list 1. linux 2. computers 3. labs 4. questions (7 Replies)
Discussion started by: aalbazie
7 Replies

3. Shell Programming and Scripting

[sed] Replace one line with two lines

Literally cannot get this one, guys. Single line replacement is simple, but I am not understanding the correct syntax for including a new line feed into the substitution part. Here's what I got. (Cannot use perl) #!/bin/sh set -f #Start Perms export HOME=/home/test_user # End Perms... (6 Replies)
Discussion started by: Parallax
6 Replies

4. Shell Programming and Scripting

Find and Replace Different Lines

Hi, I am looking at modifiying a file but getting a bit lost with what i am trying to do. I have the following file i need to alter. I want to search a list of files for the DEVSERIAL "0007862454" part but only the numbers. I then need to replace the line under DRIVES with the correct drive... (7 Replies)
Discussion started by: forcefullpower
7 Replies

5. Shell Programming and Scripting

search and replace, when found, delete multiple lines, add new set of lines?

hey guys, I tried searching but most 'search and replace' questions are related to one liners. Say I have a file to be replaced that has the following: $ cat testing.txt TESTING AAA BBB CCC DDD EEE FFF GGG HHH ENDTESTING This is the input file: (3 Replies)
Discussion started by: DeuceLee
3 Replies

6. Shell Programming and Scripting

Replace lines in a file

Hi everybody, I am a newbie in shell scripting and I'm trying to write a script which reads lines from a file, searching some of this lines to change a specified number. I want to replace the line for another in the file. I have to replace multiples lines, so I have a for. Now I am trying with... (1 Reply)
Discussion started by: alex82
1 Replies

7. Shell Programming and Scripting

Replace lines from one file to another

Hello, I have 8 lines containing these unique words in both files 645147468537 673962863160 673962864957 691717701950 707917019907 790085591726 792975507744 852174812753 file.dat.orig (has 1000 lines) and file.dat(has only 8 lines) I want to replace those lines in file.dat.orig by... (1 Reply)
Discussion started by: jakSun8
1 Replies

8. Shell Programming and Scripting

sed to replace two lines with one

I want to use sed to check if a short line is contained in the line after it, and if it is, to delete the short one. In other words, the input is... This is a This is a line ... and I want it to give me... This is a line Here's what I've tried so far: s/\(^.*\)\n\(\1.*$\)/\2/ Also,... (7 Replies)
Discussion started by: estebandido
7 Replies

9. Shell Programming and Scripting

replace lines in a file

I've got a file full of numbers, example: cat test.file 60835287 0 51758036 40242437 0 32737144 0 24179513 0 4131489957 I want to replace those numbers (4 Replies)
Discussion started by: TehOne
4 Replies

10. Shell Programming and Scripting

SED - Search and replace lines containing...

Hi, I need a sed line that will find all lines that contain "<int key="NSWindowStyleMask">" and then replace the entire line (not just that one string) with "<int key="NSWindowStyleMask">8223</int>". It doesn't necessarily have to use sed as long as it gets the job done :) Thanks (9 Replies)
Discussion started by: pcwiz
9 Replies
Login or Register to Ask a Question