Visit The New, Modern Unix Linux Community


How to rewrite a line in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to rewrite a line in a file
# 1  
How to rewrite a line in a file

Hi

Can anyone tell me how can rewrite a line in a file by using line number? I tried to use sed by failed to do so.
For example

HELLO
179.390 111.560
HOW TO DO
WHAT TO DO

to become

HELLO
200 3000
HOW TO DO
WHAT TO DO
# 2  
To replace line 2 :
Code:
sed '2c\
200 3000' infile > outfile

With awk:
Code:
awk 'NR==2 {print "200 3000"; next} 1' infile > outfile


Jean-Pierre.
# 3  
Here is another way of doing it:
To change line 2:
Code:
sed '2s/.*/200 3000/' infile

# 4  
Quote:
Originally Posted by aigles
To replace line 2 :
Code:
sed '2c\
200 3000' infile > outfile

With awk:
Code:
awk 'NR==2 {print "200 3000"; next} 1' infile > outfile


Jean-Pierre.
Thanks everyone for valuable suggestions.

I tried both commands suggested by aigles but it doesnt work. I got errors which indicating syntax error if I am not mistaken.
However, Shell Life commands work well.

I wish to extend my questions base on the question I posted the other day.
How about only change the 2nd word on the second line of the file? For example
HELLO
179.390 111.560
HOW TO DO
WHAT TO DO

to become

HELLO
179.390 50000
HOW TO DO
WHAT TO DO
# 5  
Quote:
I tried both commands suggested by aigles but it doesnt work. I got errors which indicating syntax error if I am not mistaken.
The two commands work fine on my AIX box.
What errors you got ?

To change word 2 on line 2, you can do :
Code:
awk 'NR==2 {$2=50000; print ;next} 1' infile > outfile

Jean-Pierre.
# 6  
Code:
awk 'NR==1 {$2=50000;print;next}{print}' file

# 7  
The error that I got when run awk "NR==3 {print "200 3000"; next} 1" unit.dat
is as below.

Syntax Error The source line is 1.
The error context is
NR==3 {print >>> 200 <<<
awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.

is that indicating syntax error?

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #220
Difficulty: Easy
When multiple routers are used in interconnected networks, the routers can exchange information about destination addresses using a routing protocol.
True or False?

9 More Discussions You Might Find Interesting

1. Linux

Rewrite proxypass

Hi, I have a Apache 2.0 web server. When a users comes in to sitea.com a check is applied if the path ends with *t*, the user hits a rewrite rule that adds an environment variable called x is hit with a proxypass. This has worked successfully in the past, but recently I added another rewrite... (0 Replies)
Discussion started by: 3junior
0 Replies

2. UNIX for Advanced & Expert Users

Sendmail Rewrite Ruleset

Hi all, I like to write a rule which do the following: INPUT ADDRESS REWRITTEN TO ----------------------------- ----------------------------- foo.bar@sub.domain.com bar@domain.com foo@othersub.domain.com ... (1 Reply)
Discussion started by: bashily
1 Replies

3. Shell Programming and Scripting

Efficient rewrite of code?

egrep -v "#" ${SERVERS} | while read shosts do grep -Pi "|" ${LOGFILE} | egrep "${snhosts}" | egrep "NOTIFICATION:" | awk -F";" '{print $3}' | sort -n | uniq | while read CEXIST do ... (6 Replies)
Discussion started by: SkySmart
6 Replies

4. Web Development

Need help with rewrite rule

Hi, I hosted my site on Apache web server. I wanted to redirect all the users request to a HTML page(maintenance page). I used the below rewrite rule to do ths same. RewriteEngine on RewriteRule .* /maintenance.html The maintenance.html page contains an image. When ever I try to... (2 Replies)
Discussion started by: BSrikanthB
2 Replies

5. Shell Programming and Scripting

How to rewrite a existing value in a column inside a file?

I am having 4 field in a file name age date status i want to update or rewrite a value of status with another value how it can be done i used awk & sed but it shows result but not updating in original file help me out... Thanks (4 Replies)
Discussion started by: ragavendar
4 Replies

6. UNIX for Dummies Questions & Answers

rewrite date

I'm looking to have function that takes the present month and rewrites it into this form: _06_ (june), _09_ (september), and so on.. I would like this to be a my $this_month=code that rewrites date function because I would like to be a able to call it multiple times in the script by writing... (5 Replies)
Discussion started by: marringi
5 Replies

7. Shell Programming and Scripting

grep help, how do i rewrite this

Thanks , franklin you method worked, i knew i had to use a while loop and getline in there just didnt know the proper order :) Hi everyone, im trying to make the following command line shorter by introducing a script that join up all the grep commands ./new1a < numbers.txt | grep -i -v '^a '... (5 Replies)
Discussion started by: weezybaby
5 Replies

8. Shell Programming and Scripting

How do I rewrite to use a while instead of find?

for FILE in `find /home/Upload/*` Need to use a while instead to prevent errors when the file is emptied (4 Replies)
Discussion started by: goodmis
4 Replies

9. UNIX for Advanced & Expert Users

Apache Rewrite help!

I am trying to write RewriteRule on Apache_1.3.26 to get users web page from another server. for example if users tries to get web page on www.somedomain.com/~usersname it will get the web page from www.testdomain.com/~username without redirect and users will not be aware of any redirect... (1 Reply)
Discussion started by: hassan2
1 Replies

Featured Tech Videos