Solved

Overwriting  Original file with new output ?

Posted on 2006-06-25
5
380 Views
Last Modified: 2010-04-22
I am running  sed -f test.sed $file > $file.out              as a result I am getting .out files

( which is the expected output ) but i have to mannually rename them to the original filename
then remove all*.out

is there a way I can overwrite the original one ?  Thanks much

Shawkat

My whole script look like following :


#!/bin/ksh
for file in `echo *`
 do
  sed -f test.sed $file > $file.out
 done
#
0
Comment
Question by:dmshawkat
5 Comments
 
LVL 38

Accepted Solution

by:
yuzh earned 25 total points
ID: 16980763
you can change:
    sed -f test.sed $file > $file.out
to:

    sed -f test.sed $file > $file.out
    mv $file.out $file
0
 
LVL 48

Assisted Solution

by:Tintin
Tintin earned 25 total points
ID: 16988646
Always good to check the sed was successful *before* overwriting the original file.  I'd use

#!/bin/ksh
for file in *
do
  sed -f test.sed $file >file.out && mv file.out $file
done

Note that `echo *` is redundant as the shell does globbing for you.
0
 
LVL 27

Expert Comment

by:Nopius
ID: 17006381
It's possible with 'ed' command. man ed

Usage:
cat test.ed | ed - $file

ed commands are different from sed, so you need to modify script.

Very simple 'ed' script, that will add '1234' to the end of each line is:
--[cut]--
1,$s/$/1234/
w
q
--[cut]--
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Linux : can't create transaction lock error 1 84
NTP Server in VMware 5 378
Sed question 2 122
unable to put logic for reading multiple repo in a single file 4 66
A metadevice consists of one or more devices (slices). It can be expanded by adding slices. Then, it can be grown to fill a larger space while the file system is in use. However, not all UNIX file systems (UFS) can be expanded this way. The conca…
Installing FreeBSD… FreeBSD is a darling of an operating system. The stability and usability make it a clear choice for servers and desktops (for the cunning). Savvy?  The Ports collection makes available every popular FOSS application and packag…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question