Delete line from remote file over ssh passing variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete line from remote file over ssh passing variable
# 1  
Old 11-08-2019
Delete line from remote file over ssh passing variable

I have a variable called $a1 which maps to something like "http://servername proxy1 count http" and a lots of entries in a file on remote server.
If I have the following in my .sh script:
Code:
sed -i "\%$a1%d" mylog.txt

the line is deleted from mylog.txt. Great.
I'm trying now to remvoe this from a remote server too:
Code:
echo $a1 | ssh -q -i ~/.ssh/mysshkey remoteserver "sed -i \"\%$a1%d\" mylog.txt"

This doesn't work. I also tried
Code:
 echo $a1 | ssh -q -i ~/.ssh/mysshkey remoteserver "sed -i '\%$a1%d\' mylog.txt"

Which also doesn't work.

I am missing something obvious?
# 2  
Old 11-08-2019
Hi, you do not need the echo $a1 | part.

Try:
Code:
ssh -q -i ~/.ssh/mysshkey remoteserver "sed -i '\%$a1%d' mylog.txt"

There was a backslash before the last single quote.

Last edited by Scrutinizer; 11-08-2019 at 01:43 PM..
# 3  
Old 11-14-2019
Thanks for the spot.


It didn't quite work as you suggested, but when I added the echo back in, it worked. Many thanks:
Code:
echo $a1 | ssh -q -i ~/.ssh/mysshkey remoteserver "sed -i '\%$a1%d' mylog.txt"

# 4  
Old 11-14-2019
The echo $a1 | ssh ... redirects stdin - but nothing reads from it.
You can just redirect stdin with </dev/null ssh ... or close stdin with ssh -n ...; that should have the same effect and not confuse anybody.
This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Need help with how to search a file for a variable string and delete that line

Hi, I have a working script. It does what I am intending it to but a bit confused whether the sed part is supposed to be working or not. Further down is the script with the sed part that should have been working but not and the grep -v part which is the workaround that I am using at the... (10 Replies)
Discussion started by: newbie_01
10 Replies

2. Shell Programming and Scripting

Declare and grep a variable via ssh/remote/loop

If I am running a bash command, and some awk getting the ethernet adapter on the local machine. It works fine. But if I will run it from the remote, it is EMPTY on echo and throwing error in grep. Thank you This work perfectly fine $ f=`/sbin/ip a|grep 127.127 | awk '{print $NF }' ` ; ip... (2 Replies)
Discussion started by: kenshinhimura
2 Replies

3. Shell Programming and Scripting

Ssh remote command and print same line

john-test:/root> ssh -q chicago-ser uname;date Linux Fri Oct 13 16:41:11 GMT 2017 How I can print on the same line like this : Linux Fri Oct 13 16:41:11 GMT 2017 (2 Replies)
Discussion started by: jhonnyrip
2 Replies

4. Shell Programming and Scripting

Passing a variable via ssh, can't quite get it right

Hi Guys n Girls, Below im using a while command to wait for a file on another server then carrying on with the script..... I dont believe the $Sausage1 variable is being passed to the other server so its not finding the file. If i replace the variable with the date then it works as expected. ... (2 Replies)
Discussion started by: twinion
2 Replies

5. Shell Programming and Scripting

Remote command in variable using ssh

Hi, I've an issue in a shell script: I'm opening an ssh connection to a remote server, then I want to store the result of a ls command in a variable, but it doesn't work: the ls is done on the local machine. ssh user@server << EOF ls # works as expected (ls is done remotely) test=`ls` # the... (1 Reply)
Discussion started by: seloum57
1 Replies

6. Shell Programming and Scripting

ssh sending local variable to remote system

I am running a useradd script, which works locally but I want to take some of that local information and send it to a remote system, ssh keys are set up between the two systems. I am attaching the script, look at the section titled "Sending information to FTP2" Removed attachment, added... (0 Replies)
Discussion started by: slufoot80
0 Replies

7. UNIX for Dummies Questions & Answers

Passing of variable values to remote server

Hi, My script will take 3 i/p's from user. Now i need to pass these 3 values to remote server. Please find my code. while do echo " To which server you want to connect ? " echo " 1. server1 \n" echo " 2. server2 \n" read opt_server if then echo "enter the... (2 Replies)
Discussion started by: sree143reddy
2 Replies

8. Shell Programming and Scripting

passing arguments in remote ssh command?

i have a bash script on serverA, when i run the script on the server, it runs fine. the way to run the script is like this ./script "option1" Now i am trying to call it from local laptop using ssh command, my command is as the following ssh serverA ~/script "option1" and i got error... (7 Replies)
Discussion started by: fedora
7 Replies

9. Shell Programming and Scripting

Passing the variable value to remote server.

Dear All, Can anybody explain me how to pass the variable value to command argument which will execute in remote machine. example.. test="test-123.dbf" how can i pass this value to command ls -l for remote machine? I tried to do like this way ssh root@remote 'ls -l... (2 Replies)
Discussion started by: nmadhuhb
2 Replies

10. Shell Programming and Scripting

Passing the command line argument in a variable

Hi, I am new to unix. Is their a way to pass the output of the line below to a variable var1. ls -1t | head -1. I am trying something like var1=ls -1t | head -1, but I get error. Situation is: I get file everyday through FTP in my unix box. I have to write a script that picks up first... (1 Reply)
Discussion started by: rkumar28
1 Replies
Login or Register to Ask a Question