You don't need to cat the file and pipe it to sed, sed can read the file directly. The problem seems to me to be the quotes. I believe this is what you need; double quotes round the expressions that you wish to have shell variables expanded in.
---------- Post updated at 23:22 ---------- Previous update was at 23:13 ----------
You might also consider logic like the sample below, so the sed is executed with the correct number of expressions when the user does not enter 'yes' at the prompt:
Note that $p2 is purposely not in quotes on the sed command.
---------- Post updated at 23:37 ---------- Previous update was at 23:22 ----------
And one last thing....
I'm not quite sure what your sed is trying to accomplish. If I had to guess, I would say that you are trying to use sed to print all lines in the file that contain either string1 or string2. At least when I run it, with that assumption, it isn't doing that.
If that is what you are trying to accomplish, I'd suggest the following:
Last edited by agama; 04-03-2012 at 12:41 AM..
Reason: grammar; compatable with BSD style seds
Hi folks,
I'm looking for a solution to pass variables to a sed-command. I'm reading a lot of threats and also the q&a "How can I use a variable in sed?". None of these commands works. I'm using AIX 5.2.
I want to do the following:
NUMBER=` echo 38341` | sed -n '/$NUMBER/p'
an obtained... (3 Replies)
I am trying to pass a regular expression variable from a simple script to sed
to remove entries from a text file
e.g.
a='aaaa bbbb cccc ...|...:'
then executing sed from the script
sed s'/"'$a"'//g <$FILE > $FILE"_"1
my output file is always the same as the input file !!
any... (5 Replies)
Is it possible to process multiple variables in a single sed command?
I have the following ksh with three variables and I want to search for all variables which start with "var" inside input.txt.
I tired "$var$" but it just prints out everyting in input.txt and does not work.
$ more test.ksh... (5 Replies)
Hello ,
I have a script named testscript.sh
wherein I have two variables $var and $final (both of which contain a number)
I have a sed write function inside this script as follows:
sed '1,2 w somefile.txt' fromfile.txt
Now , in the above i want to pass $var and $final instead of... (2 Replies)
Hi Folks,
How can I make the following to work from a korn shell?
old="OLDSTRING"
new="NEWSTRING"
file="myfile.txt"
sed -n 's/$old/$new/gp' $file
Thanks in advance
rogers42 (3 Replies)
I need sed to add a "/>" to the end of a line that contains/starts with <meta.
current line is <meta name="keywords" content="kayword 1, kwyword2">
and should be <meta name="keywords" content="kayword 1, kwyword2 " />
i need something like this?
find . -name "*.html" -print0 | xargs... (6 Replies)
Hi, i need help passing variables to sed using ksh.
My goal is to get particular data from log files.
first i put a mark to the log files.
echo "TEST_"`date + %m_%d_%Y_%T"` >markFile
this will produce a 'markFile' which contain text like this
TEST_06_01_2009_21:55:09
then i put the mark... (2 Replies)
Hello I am hoping you may help.
I am not sure how to go about this exactly, I know the tools but not sure how to make them work together.
I have two SED commands that I would like to run in a shell script. I would like to take
the manual input of a user (types in when prompted) to be used... (4 Replies)
Using ksh to call a function which has awk script embedded.
It parses a long two element list file, filled with text numbers (I want column 2, beginning no sooner than line 45, that's the only known thing) . It's unknown where to start or end the data collection, dynamic variables will be used. ... (1 Reply)
Hi everyone,
I've re-written some of our scripts to use more functions and I've run into a situation where passing a variable to a sed function does not work. My function is a one-liner sed command as follows:
function StringSub()
{
sed -i "${1}/${2}/${3}/${4}" ${5}
}
Where ${1} through... (4 Replies)
Discussion started by: richardsantink
4 Replies
LEARN ABOUT SUNOS
tr
tr(1B) SunOS/BSD Compatibility Package Commands tr(1B)NAME
tr - translate characters
SYNOPSIS
/usr/ucb/tr [-cds] [ string1 [string2]]
DESCRIPTION
The tr utility copies the standard input to the standard output with substitution or deletion of selected characters. The arguments string1
and string2 are considered sets of characters. Any input character found in string1 is mapped into the character in the corresponding posi-
tion within string2. When string2 is short, it is padded to the length of string1 by duplicating its last character.
In either string the notation:
a-b
denotes a range of characters from a to b in increasing ASCII order. The character , followed by 1, 2 or 3 octal digits stands for the
character whose ASCII code is given by those digits. As with the shell, the escape character , followed by any other character, escapes
any special meaning for that character.
OPTIONS
Any combination of the options -c, -d, or -s may be used:
-c Complement the set of characters in string1 with respect to the universe of characters whose ASCII codes are 01 through 0377
octal.
-d Delete all input characters in string1.
-s Squeeze all strings of repeated output characters that are in string2 to single characters.
EXAMPLES
Example 1: Creating a list of all the words in a filename
The following example creates a list of all the words in filename1, one per line, in filename2, where a word is taken to be a maximal
string of alphabetics. The second string is quoted to protect `' from the shell. 012 is the ASCII code for NEWLINE.
example% tr -cs A-Za-z '