09-02-2008
Replacing contents in a file from multiple programmes
Hi All,
I have a query on Perl. I have a text file which has 3 lines, i want to only replace the first line with my replaced text and keep the rest of the text. FOr eg
Before change -->
echo:a
![Stick Out Tongue Smilie](https://www.unix.com/images/smilies/tongue.gif)
ending
echo
![Thumbsup Smilie](https://www.unix.com/images/smilies/thumb.gif)
pending
echo:c
![Stick Out Tongue Smilie](https://www.unix.com/images/smilies/tongue.gif)
ending
After change --->
echo:a:done
echo
![Thumbsup Smilie](https://www.unix.com/images/smilies/thumb.gif)
pending
echo:c
![Stick Out Tongue Smilie](https://www.unix.com/images/smilies/tongue.gif)
ending
Brief: Here i am continuously trying to modify the text file though this perl programme from multiple machines i.e this perl prog will run on multiple machines trying to modify\change a single text.
Snippet of my code.(not working yet. It appends to the text file instead of replacing it). Can you please guide me to this.
============================================
open(MYFILE, "+< $myfile") || die;
flock(MYFILE, 2);
#my $myfile="c:\\ssk\\help.txt";
#open INPUT, "<$myfile";
undef $/;
my $content = <MYFILE>;
my $inprogress = "inprogress";
my $done = "done";
$content =~ m/(\w*)
![Frown Smilie](https://www.unix.com/images/smilies/frown.gif)
\w*)
![Frown Smilie](https://www.unix.com/images/smilies/frown.gif)
\w*)/;
if ($3 eq "pending")
{
$content=~ s/pending/inprogress/;
my $contentbkup = $content;
$content =~ s/(.*)//g;
print MYFILE "$1";
print MYFILE "$contentbkup";
$contentbkup =~ s/(.*)
![Frown Smilie](https://www.unix.com/images/smilies/frown.gif)
.*)
![Frown Smilie](https://www.unix.com/images/smilies/frown.gif)
.*)/(.*)
![Frown Smilie](https://www.unix.com/images/smilies/frown.gif)
.*):$done/;
}
seek(MYFILE, 0, 0);
close MYFILE;
$/ = "\n";
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have a file that contains the following lines
the brown quick fox
jumped over
the white laze dog
0123456789
I wanted to put the contents of this file into a variable so I used this code:
VAR_LIST=`cat $2`
where $2 is the file name passed as an argument to the script
If I... (3 Replies)
Discussion started by: Nomaad
3 Replies
2. Shell Programming and Scripting
I'm trying to change the ramfs size in kernel .config automatically.
I have a ramfs_size file generated with du -s
cat ramfs_size
64512
I want to replace the linux .config's ramdisk size with the above value
CONFIG_BLK_DEV_RAM_SIZE=73728
Right now I'm doing something dumb like: ... (3 Replies)
Discussion started by: amoeba
3 Replies
3. Shell Programming and Scripting
Hi,
I have a set of files stored in a single directory that I use to set parameters for a physics code, and I would like to streamline the process of updating them all when I change a parameter. For instance, if the files are called A2000p300ini, A2000p300sub, A2000p300run, and the text in each... (3 Replies)
Discussion started by: BlueChris
3 Replies
4. Shell Programming and Scripting
Being new to this area .I have been assigned a task which i am unable to do . Can any one please help me .
Hi I have requirement where i have input file XYZ_111_999_YYYYMMDD_1.TXT and with header and series of Numbers and Footer.
I want to create a mutiple output files with each file having a... (2 Replies)
Discussion started by: bhargavkr
2 Replies
5. Ubuntu
Hi!
I have installed ubuntu out of an error, a bit of frustration, a bit of annoyance and a bit of excitement! I am (was!) a windows user. I had windows 7 on my laptop. You might already know how famous windows is with nasty viruses. I got one too! Had no option but to get rid of the whole... (3 Replies)
Discussion started by: ubuntu_noob
3 Replies
6. Shell Programming and Scripting
We have 2 file XML files - FILE1.XML and FILE2.xml - we need copy the contents of FILE1.XML and replace in FILE2.xml pattern "<assignedAttributeList></assignedAttributeList>"
FILE1.XML
1. <itemList>
2. <item type="Manufactured">
3. <resourceCode>431048</resourceCode>
4. ... (0 Replies)
Discussion started by: balrajg
0 Replies
7. UNIX for Dummies Questions & Answers
I need to replace all filesnames in a folder as well as its content from AK6 to AK11. Eg Folder has files AK6-Create.xml, AK6-system.py etc.. the files names as well as contents should be changes to AK9-Create.xml, AK9-system.py etc
All files are xml and python scripts.
---------- Post... (0 Replies)
Discussion started by: Candid247
0 Replies
8. Shell Programming and Scripting
Hi
Am confused with the usage of "sed" command
I want to replace a single line with multiple lines of a file..
eg.,
A file has
Hi, How are you?
I need to replace as
Am fine
What are You doing?
I used the script as
string1="Hi, How are you?"
echo "$string1 is the value"... (4 Replies)
Discussion started by: Priya Amaresh
4 Replies
9. Shell Programming and Scripting
Greetings all
I have a delimited text file (the delimiter is ';') where certain fields consist of many blanks e.g. ; ; and ; ;
Before I separate the data I need to eliminate these blanks altogether.
I tried the sed command using the following syntax:
sed -i 's/; *;/;;/g' <filename>
... (15 Replies)
Discussion started by: S. BASU
15 Replies
10. UNIX for Beginners Questions & Answers
I am trying to consolidate multiple information files (<hostname>.Linux.nfslist) into one file so that I can import it into Excel. I can get the file contents with cat *Linux.nfslist >> nfslist.txt. I need each line prefaced with the hostname. I am unsure how to do this.
--- Post updated at... (5 Replies)
Discussion started by: Kentlee65
5 Replies
ECHO(3) 1 ECHO(3)
echo - Output one or more strings
SYNOPSIS
void echo (string $arg1, [string $...])
DESCRIPTION
Outputs all parameters.
echo is not actually a function (it is a language construct), so you are not required to use parentheses with it. echo (unlike some other
language constructs) does not behave like a function, so it cannot always be used in the context of a function. Additionally, if you want
to pass more than one parameter to echo, the parameters must not be enclosed within parentheses.
echo also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign. Prior to PHP 5.4.0, this short syn-
tax only works with the short_open_tag configuration setting enabled.
I have <?=$foo?> foo.
PARAMETERS
o $arg1
- The parameter to output.
o $...
-
RETURN VALUES
No value is returned.
EXAMPLES
Example #1
echo examples
<?php
echo "Hello World";
echo "This spans
multiple lines. The newlines will be
output as well";
echo "This spans
multiple lines. The newlines will be
output as well.";
echo "Escaping characters is done "Like this".";
// You can use variables inside of an echo statement
$foo = "foobar";
$bar = "barbaz";
echo "foo is $foo"; // foo is foobar
// You can also use arrays
$baz = array("value" => "foo");
echo "this is {$baz['value']} !"; // this is foo !
// Using single quotes will print the variable name, not the value
echo 'foo is $foo'; // foo is $foo
// If you are not using any other characters, you can just echo variables
echo $foo; // foobar
echo $foo,$bar; // foobarbarbaz
// Some people prefer passing multiple parameters to echo over concatenation.
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10);
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "
";
echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
END;
// Because echo does not behave like a function, the following code is invalid.
($some_var) ? echo 'true' : echo 'false';
// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
// it behaves like a function, so
// it may be used in this context.
echo $some_var ? 'true': 'false'; // changing the statement around
?>
NOTES
Note
Because this is a language construct and not a function, it cannot be called using variable functions.
SEE ALSO
print(3), printf(3), flush(3), Heredoc syntax.
PHP Documentation Group ECHO(3)