shell overwrite lines in a file


 
Thread Tools Search this Thread
Special Forums UNIX Desktop Questions & Answers shell overwrite lines in a file
# 1  
Old 10-27-2008
shell overwrite lines in a file

Hello,

I have an external file (file.txt). This shall be a kind of a config file for my shell script. I get the line numbers as to a corresponding entry by grep. Now I would like to substitute the corresponding line from the shell script back to the file and exactly on the same line number.

e.g. if line number 20 is the place in file.txt where the name of the project is stored. And the user can change the name of his project via a kdialog template, this changes shall be overwrite in the file.txt, line 20.

tks for any reply
# 2  
Old 10-27-2008
Do you mean that you want a history of changes in the script to be shown (somehow) in file.txt

An actual example of what you mean would help a lot.
# 3  
Old 10-27-2008
Tks for your replay. Here is the explanantion:

I am writing a script to install a embedded mini-linux via gentoo. The script is communicating with the user via kdialog.
I would have two chances - 1st. fix all parameter (e.g. projectname, path to project, selected libs (uclibc, glibs etc.) etc.) or 2nd. put all those parameter in a separate file.
This file is my config file file.txt it looks like this:

#### REM
#
#

# <1> Projectname
ProjectOne

#REM
# <2> Path to Project
/mnt/ProjectOne

# ....

So once I need a parameter e.g. the projectname the script can read it from the config file file.txt by find the contant starting with <...> add one line and read the result into a var.

But the user shall be able to change the parameters as well. E.g. he can offer a kdialog to define the project path. If this differ from the default, I would like to overwrite the choice e.g. /tmp/myproject/new in the config file by searching the # <2> ... constant add one line and overwrite the actual value.

My problem is that I do not know a tool in shell which is able to write into files as to a line order. SED maybe can but I do not have any experience with it.

Tks for your reply in advance
# 4  
Old 10-28-2008
Found a SED solution which looks:

# getCounter
var="# <Path to Project>"
var1="/root/Desktop/Textdatei.txt"
Counter=`sed -n -e "/${var}/=" $var1`
FinalCounter=`expr $Counter + 1`

# lineSubstitution
varneu="/tmp/noch/watdazu/gesch/"
sed -e "${FinalCounter}c\\${varneu}" $var1 > xxx.txt # Problem: described below
cat xxx.txt > $var1 # Bad solution
rm xxx.txt

The remaining problem is that I wished to write the whole samplestorage back to the original file:

1st solution: sed -e "${FinalCounter}c\\${varneu}" $var1 > $var1
2nd solution sed -e "${FinalCounter}c\\${varneu}w $var1" $var1

in solution no. 1 the file (Textdatei.txt) is always empty. I do not understand for what reason the file will be overwritten with empty lines?

in solution no 2. I have the problem with the syntax. the w $var1 is always just added to the $varneu in the substituted line. I tried with several charcters before w like (/, \, etc. ) but I did'nt hit the right one.

Can anybody advice how to go along with this?

tks in advance
# 5  
Old 10-28-2008
Found a SED solution which looks:

# getCounter
var="# <Path to Project>"
var1="/root/Desktop/Textdatei.txt"
Counter=`sed -n -e "/${var}/=" $var1`
FinalCounter=`expr $Counter + 1`

# lineSubstitution
varneu="/tmp/noch/watdazu/gesch/"
sed -e "${FinalCounter}c\\${varneu}" $var1 > xxx.txt # Problem: described below
cat xxx.txt > $var1 # Bad solution
rm xxx.txt

The remaining problem is that I wished to write the whole samplestorage back to the original file:

1st solution: sed -e "${FinalCounter}c\\${varneu}" $var1 > $var1
2nd solution sed -e "${FinalCounter}c\\${varneu}w $var1" $var1

in solution no. 1 the file (Textdatei.txt) is always empty. I do not understand for what reason the file will be overwritten with empty lines?

in solution no 2. I have the problem with the syntax. the w $var1 is always just added to the $varneu in the substituted line. I tried with several charcters before w like (/, \, etc. ) but I did'nt hit the right one.

Can you advice how to go along with this?

tks in advance

p.s. this is my Textdatei.txt:

#############################################
#***************Use this File **************#
#############################################
#
#

# <ProjectName>
AlterName

#
#
#
# <Path to Project>
/tmp/noch/watdazu/gesch/

#
#
#

Edit/Delete Message Reply With Quote Multi-Quote This Message Quick reply to this message
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to Undo overwrite file in UNIX?

Hi, Could anyone please advise if its possible in unix to undo the changes for a file that has been overwrriten. By mistake i have overwritten a file and now i need the original file, is there a way? Please Help!!! (2 Replies)
Discussion started by: mail.chiranjit
2 Replies

2. Shell Programming and Scripting

Wget download file ( do not overwrite )

Hello all, I want to write auto update script for my embedded device, which can check and download newer version of my program and extract the files on the device. The download center is hosted on remote web server . Script checks the hosted file on web site and if the new version is there... (8 Replies)
Discussion started by: stefki
8 Replies

3. Shell Programming and Scripting

Overwrite file every day

Hi Friends, I have written a script to capture system performance every hour and redirected to output file. How to overwrite the file every next day? Thanks Suresh (4 Replies)
Discussion started by: suresh3566
4 Replies

4. Shell Programming and Scripting

Shell script to overwrite a file

Hi Guys, My requirement as follows, i want to write a shell script to display the files of a folder, i export it to a file to mail the file. The problem is the exported file is getting appended every time I run the script. I just want the file to be over written. can anyone suggest?? ... (4 Replies)
Discussion started by: Karthick N
4 Replies

5. Shell Programming and Scripting

Need to overwrite shell script using vi editor

I have an existing shell script that I am trying to modify. I have about 10 lines of info I want to overwrite using text someone emailed to me. I guess what I am trying to do basically is like a copy/paste, but it's not working for me. I am using Cygwin and vi editor. I open the script and... (4 Replies)
Discussion started by: kimberlyg2007
4 Replies

6. UNIX for Dummies Questions & Answers

overwrite file in multiple folders

I need to update the contents of a file that exists in several hundred folders. I'm on a mac. Can I use Terminal to execute a linux/unix command that will accomplish the overwriting of the file? (2 Replies)
Discussion started by: webguy262
2 Replies

7. Shell Programming and Scripting

Unable to overwrite but can delete file

I'm debugging a ksh script written by someone else that does the following: It runs a command and redirects stdout to a file called dberror that already exists using ">". This command fails with the following error: The file access permissions do not allow the specified action. dberror:... (1 Reply)
Discussion started by: savage66
1 Replies

8. Shell Programming and Scripting

Overwrite a running shell script

Hello all, This might be a dumb question...but i am running into this situation. I have a shell script that is currently in running state. It has big sql's in it and will run for few days. What happens if I change the shell now? Eg: a.shl is running and i want to mv b.shl a.shl I... (5 Replies)
Discussion started by: gsjdrr
5 Replies

9. UNIX for Dummies Questions & Answers

Restrict file overwrite through FTP

How can I restrict a user from overwriting a file once he has uploaded it through FTP. He can view the file but can't delete or overwrite it. (OS is UNIX, there is no restriction on client FTP software) Will be very glad if someone could resolve this problem. Thanks Imran Aziz Khan ... (7 Replies)
Discussion started by: imranak7
7 Replies

10. Shell Programming and Scripting

overwrite specific lines in a file

Hi all, I am trying to overwrite some lines of a very big file. I know the number of the line but I don't know how to point the cursor on its beginning. there is an option to notice the offset in lines? thanks! (7 Replies)
Discussion started by: csecnarf
7 Replies
Login or Register to Ask a Question