07-13-2005
Passing output of sed/echo to a variable
I understand how to use a variable in a sed command, but for the life of me I can't get the output into a variable.
I'm making a general function to replace part of a filename with a different string, so:
>>myscript this that
would change:
this_file001.txt to that_file001.txt and
this_file002.txt to that_file002.txt and so on...
here's what I have:
#! /bin/csh -f
foreach i ($1*)
set j = echo $i|sed 's/'$1'/'$2'/'
echo "Moving $i to $j"
#mv $i $j
end
But it gives me a syntax error. I played around with using eval but that wouldn't work for me either. Suggestions? (preferably without taking a new approach to my problem even though I'm sure there are other/better ways to do it)
Thanks....
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I m trying to pass variable to sed.
export var=140920060731
sed -e '/$var/d' file
but no luch so far..? any body has any idea abt it
Is there any way to pass variable to SED?
Thanks ,
Manish (2 Replies)
Discussion started by: Manish Jha
2 Replies
2. Shell Programming and Scripting
Hi,
In normal shell scripting, how do you pass the output of a command to a variable, instead of a file and be able to use it later?
The code is:
#!/bin/bash
who | cut -d" " -f1 > onlineusers
Instead of passing the output of the above command to the file called 'onlineusers'... (1 Reply)
Discussion started by: Furqan_79
1 Replies
3. Shell Programming and Scripting
Dear All,
I want to print a file.
First I tried with this
sed '2q;d' filename
it worked. But when i put following it is not working
x=2;
sed '$xq;d' filename
Would any one suggest how to pass the variable? (7 Replies)
Discussion started by: saifurshaon
7 Replies
4. Shell Programming and Scripting
Hi All,
Hope someone can advise here as I have been struggling to find a syntax that works here. I have tried a stack of combination I have seed in the forums but I think because I have needed to use "" and `` in the statments another method is found.
I am reading in lines with the following... (1 Reply)
Discussion started by: nkwilliams
1 Replies
5. Shell Programming and Scripting
Hi,
I'm new here so I want to say hello to everyone first!
I searched google and this forum for a similar problem, but wasn't successful
#! /bin/bash
I'm trying to output (echo) n lines of a text file to the screen (later into another file).
But I have problem with the sed command, it won't... (1 Reply)
Discussion started by: studiologe
1 Replies
6. Shell Programming and Scripting
Hi,
I have a problem with passing a echo output into a variable in bash
file='1990.tar'
NAME='echo $file | cut -d '.' -f1';
echo $NAME
the result is
echo $file | cut -d . -f1
however with this one,#!/bin/bash
file='1990.tar'
echo $file | cut -d '.' -f1
the result is what I... (2 Replies)
Discussion started by: 1988PF
2 Replies
7. Shell Programming and Scripting
I have a variable $WORDS that contains a string
Then i want to use sed to break it up.
echo $WORDS | sed 's// /g'
I tried setting this as a variable by doing
WORDS2=`echo $WORDS | sed 's// /g'`
But when i do this it does not return me to the prompt properly
ie.
jmpprd-v1>
jmpprd-v1>... (4 Replies)
Discussion started by: nitrobass24
4 Replies
8. Shell Programming and Scripting
Stumped with the formatting of the awk output when used with variables, e.g.:
awk -F, 'BEGIN {OFS=","} print {$2,$3,$4}' $infile1
produces the desired output (with rows), but when echoing the variable below, the output is one continuous line
var1=$(awk -F, 'BEGIN {OFS=","} print... (4 Replies)
Discussion started by: ux4me
4 Replies
9. UNIX for Dummies Questions & Answers
Hi,
I want to pass value of a variable track_line which is the line number to sed. Sed should print the lines starting from track_line till the last
line of the file. I tried the below command but it is not working.
sed -n '${track_line},$p' latest_log_file
I tried using the below too but... (1 Reply)
Discussion started by: nitinupadhyaya8
1 Replies
10. UNIX for Advanced & Expert Users
I have a below syntax its working fine...
var12=$(ps -ef | grep apache | awk '{print $2,$4}')
Im getting expected output as below:
printf "%b\n" "${VAR12}"
dell 123
dell 456
dell 457
Now I wrote a while loop.. the output of VAR12 should be passed as input parameters to while loop and results... (5 Replies)
Discussion started by: sam@sam
5 Replies
FWRITE(3) 1 FWRITE(3)
fwrite - Binary-safe file write
SYNOPSIS
int fwrite (resource $handle, string $string, [int $length])
DESCRIPTION
fwrite(3) writes the contents of $string to the file stream pointed to by $handle.
PARAMETERS
o $handle
-A file system pointer resource that is typically created using fopen(3).
o $string
- The string that is to be written.
o $length
- If the $length argument is given, writing will stop after $length bytes have been written or the end of $string is reached,
whichever comes first. Note that if the $length argument is given, then the magic_quotes_runtime configuration option will be
ignored and no slashes will be stripped from $string.
RETURN VALUES
fwrite(3) returns the number of bytes written, or FALSE on error.
NOTES
Note
Writing to a network stream may end before the whole string is written. Return value of fwrite(3) may be checked:
<?php
function fwrite_stream($fp, $string) {
for ($written = 0; $written < strlen($string); $written += $fwrite) {
$fwrite = fwrite($fp, substr($string, $written));
if ($fwrite === false) {
return $written;
}
}
return $written;
}
?>
Note
On systems which differentiate between binary and text files (i.e. Windows) the file must be opened with 'b' included in fopen(3)
mode parameter.
Note
If $handle was fopen(3)ed in append mode, fwrite(3)s are atomic (unless the size of $string exceeds the filesystem's block size, on
some platforms, and as long as the file is on a local filesystem). That is, there is no need to flock(3) a resource before calling
fwrite(3); all of the data will be written without interruption.
Note
If writing twice to the file pointer, then the data will be appended to the end of the file content:
<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);
// the content of 'data.txt' is now 123 and not 23!
?>
EXAMPLES
Example #1
A simple fwrite(3) example
<?php
$filename = 'test.txt';
$somecontent = "Add this to the file
";
// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {
// In our example we're opening $filename in append mode.
// The file pointer is at the bottom of the file hence
// that's where $somecontent will go when we fwrite() it.
if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}
// Write $somecontent to our opened file.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($somecontent) to file ($filename)";
fclose($handle);
} else {
echo "The file $filename is not writable";
}
?>
SEE ALSO
fread(3), fopen(3), fsockopen(3), popen(3), file_get_contents(3).
PHP Documentation Group FWRITE(3)