Expanding variables with Ed Bash 3.2.33


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Expanding variables with Ed Bash 3.2.33
# 1  
Old 07-31-2009
Expanding variables with Ed Bash 3.2.33

Hi,

The following code finds the line containing fruits in test.txt and replaces instances of apple with banana.

Code:
   ed -s test.txt <<< $'/fruits/s/apple/banana/g\nw'

What I want to do is put variables in the place of fruits, apple and banana.

I have tried replacing ' with " to get the variables to expand, but to no avail.

Code:
ed -s accounts.txt <<< $"/$account/s/$balance/$newBalance/g\nw"

Also
Code:
ed -s accounts.txt <<< $"/${account}/s/${balance}/${newBalance}/g\nw"

And trying to echo them, but still no luck.


I'm using GNU bash, version 3.2.33(1)-release (i386-redhat-linux-gnu)
# 2  
Old 07-31-2009
The $ in front of the string causes it to try to execute the string and feed its output into ed, not feed it into ed directly. Which is a new one on me. Shells are such weird things. Smilie cat <<< "asdf" works fine, as does cat <<< "$varname".
# 3  
Old 08-01-2009
Thanks for taking the trouble to reply.
If anyone can think of any easy way to do what I want to do then let me know.
Curently traawling through the mountain of find and replace postings on the forum.

Simply open file, find Word in line then replace word1 with word2. Then write change to file.
Word is a unique field in file so will only exist on one line. Word1 will only be present once per line.

cheers

Nick

Code:
 sed -i "/$address/s/$pat1/$pat2/" accounts.txt

Where address finds you the line, then pat1 is replaced by pat2. Only occurs once per line.

Last edited by de_la_espada; 08-01-2009 at 12:19 PM.. Reason: Found Solution
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

[BASH] eval command not expanding variables as expected.

Hi Guys, I wrote a collection of bash functions years ago and now need to use them again but I'm getting some error messages when eval tries to expand the variables names. I recollect that I used the shopt command to set one of the options but I can't quite remember the command that I... (8 Replies)
Discussion started by: ASGR
8 Replies

2. UNIX for Beginners Questions & Answers

Bash argument not expanding in script

I pass an argument to bash as run. The first command in green executes as expected, however the second in blue fails as the $run does not expand. I tried to escape the variable with \ thinking the quotes were making the literal translation and also "${run}" but both did not work to expand the... (3 Replies)
Discussion started by: cmccabe
3 Replies

3. Shell Programming and Scripting

Possible ksh93 Bug Expanding Variables?

My OS is Linux (kernel 4.08.something) and AIX (7100-04-01-1543), the used ksh versions are: ksh88: Version M-11/16/88f (AIX) ksh93: Version M 93t+ 2009-05-01 (AIX), Version M 93u (Linux) When writing a parser for stanza files in ksh i encountered a rather strange behavior. Here is a... (4 Replies)
Discussion started by: bakunin
4 Replies

4. Shell Programming and Scripting

Passing awk variables to bash variables

Trying to do so echo "111:222:333" |awk -F: '{system("export TESTO=" $2)}'But it doesn't work (2 Replies)
Discussion started by: urello
2 Replies

5. Shell Programming and Scripting

BASH arrays and variables of variables in C++

Sometimes it is handy to protect long scripts in C++. The following syntax works fine for simple commands: #define SHELLSCRIPT1 "\ #/bin/bash \n\ echo \"hello\" \n\ " int main () { cout <<system(SHELLSCRIPT1); return 0; } Unfortunately for there are problems for: 1d arrays:... (10 Replies)
Discussion started by: frad
10 Replies

6. Shell Programming and Scripting

awk issue expanding variables in ksh script

Hi Guys, I have an issue with awk and variables. I have trawled the internet and forums but can't seem to get the exactt syntax I need. I have tried using awk -v and all sorts of variations but I have hit a brick wall. I have spent a full day on this and am just going round in circles. ... (3 Replies)
Discussion started by: gazza-o
3 Replies

7. Shell Programming and Scripting

how to use in bash variables and quotes

I have some troubles with variables and quotes... I want: if $URL is empty (no user input) go to http://www.localhost/index.php/ else add this string (search) "?s=+$URL" EXAMPLE: No user input string= http://www.localhost/index.php/ User input = "unix" string=... (3 Replies)
Discussion started by: aspire
3 Replies

8. Shell Programming and Scripting

Bash variables

Ummm can anybody help me with this one? Its prob quite simple. I bascially have a file name say J1x2x3x7.dat Im using the file name as a variable in a bash script. Want I want to do is extract most of the file name and make it a new variable expect with say one of the number now a... (2 Replies)
Discussion started by: RichieFondel
2 Replies

9. UNIX for Advanced & Expert Users

Expanding Variables in User Input

If have var='$variable' how can I expand $variable. I have tried many thing like duble quotes/braces etc, but nothing worked. I need the solution ASAP. (2 Replies)
Discussion started by: Bsk
2 Replies

10. Shell Programming and Scripting

expanding dotted paths to absolute ones in bash or sh

I have a little script to help me manage a gallery of image files. It makes symbolic links to every file in and below the current directory, placing them in a target directory which is passed to the script as a parameter. Unfortunately, the script pukes when I pass a parameter that contains... (4 Replies)
Discussion started by: TanRanger
4 Replies
Login or Register to Ask a Question