awk over ssh


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk over ssh
# 1  
Old 07-21-2014
awk over ssh

Code:
for pics in $(su - admin -c 'ssh kitchen "(cat /lister/filer1/volz/camera/Pictures\ Lists/Arizona/Photoy.txt|gawk '{print $1}')"'); do echo $pics; done

output: missing }

This is a list of pictures. I am trying to get the first column. The command works fine, as long as I don't use the awk command. The file does cat. I have tried "{print $1}" and '{print \$1}' and even "{print $1}" I always get a missing } message or something similar.

Does anyone have experience with running ssh and awk or gawk?
# 2  
Old 07-21-2014
This is far more convoluted than it needs to be.

Code:
for X in $(ssh kitchen 'cut -f1 "/lister/filer1/volz/camera/Pictures\ Lists/Arizona/Photoy.txt"')
do
...
done

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 07-21-2014
You might need to add the user to the ssh command: ssh admin@kitchen ... so the correct account will be addressed.
# 4  
Old 07-21-2014
@RudiC
The OP has already stated that cat of the file works fine, so I assume he/she has a properly setup .ssh/config file or the user is the same on both servers.

The issue reported here more about escaping characters and passing a correctly formatted command line to the remote server. I personally find getting these ssh cmd parameters properly escaped usually ends in a trial-and-error type of exercise. For anything more than a simple 1 liner, I find it easier to just transfer a script to execute on the other side or pass a here-doc in and avoid the headaches.

---------- Post updated at 06:30 AM ---------- Previous update was at 06:11 AM ----------

As an example (even though the cut option here is the more desirable) a here-document removes all the convoluted quoting issues:

Code:
for pics in $(ssh -T kitchen <<"DONE"
   awk '{print $1}' /lister/filer1/volz/camera/Pictures\ Lists/Arizona/Photoy.txt
DONE
)
do
    echo $pics
done


Last edited by Chubler_XL; 07-21-2014 at 05:35 PM..
These 2 Users Gave Thanks to Chubler_XL For This Post:
# 5  
Old 07-22-2014
Thanks Corona and Chubler! I did get this working really well, thanks to you both. I only had to change the position of the quotes around the su - admin as I had another account I was using.

Code:
for pics in  $(su - admin -c  'ssh kitchen "cut -f1 /lister/filer1/volz/camera/Pictures\ Lists/Arizona/Photoy.txt"'); do echo $pics;done

# 6  
Old 07-22-2014
You can simplify that by only quoting what you need to:

Code:
for pics in  $(su - admin -c  'ssh kitchen cut -f1 "/lister/filer1/volz/camera/Pictures Lists/Arizona/Photoy.txt"' ); do echo $pics;done

...and if all you're doing is "echo $pics", you can simplify that even more:

Code:
su - admin -c  'ssh kitchen cut -f1 "/lister/filer1/volz/camera/Pictures Lists/Arizona/Photoy.txt"'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Query on executing awk using SSH

Hi All, Im trying to find the count of process running on remote server using SSH. Below command dosen't work. ssh -q user@host "ps -ef | grep "pattern" | grep -v 'grep' | awk '{print $2}'|wc -l" But below command works. ssh -q user@host "ps -ef | grep "pattern" | grep -v... (1 Reply)
Discussion started by: Girish19
1 Replies

2. Shell Programming and Scripting

awk syntax error with ssh

I am attempting to ssh to a server and grab the line from /etc/group if it contains a specific GID. Example line from /etc/group: mysql:!:64600:mysql Run locally on <host>: # awk -F: '$3 == 64600 {print $1}' /etc/group mysql Attempt to ssh to <host> and execute: # ssh <host>... (3 Replies)
Discussion started by: port43
3 Replies

3. Shell Programming and Scripting

Ssh with awk

hello, I wish to launch a command ssh by getting back certain values in a file with awk. Example of command ssh: ssh -q lpar1 mount|grep /tmp/conf-1 ssh -q lpar2 mount|grep /tmp/conf-1 Example of file: /tmp/conf-1 servers=lpar1 lpar2 lpar3 /tmp/conf-2 servers=lpar4 lpar5 lpar6 (5 Replies)
Discussion started by: khalidou13
5 Replies

4. Shell Programming and Scripting

awk pattern matching on ssh

Hi folks, i am trying to filer some log file using awk command. When i try it on remote server, it can show the result. awk '$1=="2012-10-29" && $4==17353' somelogfile But when i try to execute it from ssh, it cannot show the same result. ssh someserver "awk '\$1=="2012-10-28" &&... (7 Replies)
Discussion started by: howielim
7 Replies

5. Shell Programming and Scripting

SSH and AWK Scripting

I am trying to put an awk command in ssh, for example: ERRCOUNT=`ssh -n $HOST "ps -ef | grep .job | grep -v grep | grep -v alert_jobs_still_running |wc -l"` From korn shell prompt this works: awk '/^Jul 12 16/ {print $0}' /u01/app/oracle/jobs/adhoc/test.dat | wc -l My data file:... (3 Replies)
Discussion started by: bradyd
3 Replies

6. Shell Programming and Scripting

awk: skip x lines and ssh

Im trying to ssh to a remote machine to grep 'x info' *.log and Im able to get the grep output as expected but "after" the policies (1st 14 lines) - I need to skip the first 14 lines. Its SunOS. Plz help??? (7 Replies)
Discussion started by: anthonyraj75
7 Replies

7. Shell Programming and Scripting

awk - skip x lines and ssh

Im trying to ssh to a remote machine to grep 'x info' *.log and Im able to get the grep output as expected but "after" the policies (1st 14 lines) - I need to skip the first 14 lines. Its SunOS. Plz help??? (1 Reply)
Discussion started by: anthonyraj75
1 Replies

8. Shell Programming and Scripting

setting a variable, using SSH and awk?

hi there I am trying to get a value from a remote machine into a local variable. To get this value i want to use awk but im having trouble getting it to run, am i escaping in the right places here and using the right quotes (i must have tried a million combinations :() # VAR=`ssh server1... (5 Replies)
Discussion started by: hcclnoodles
5 Replies

9. Shell Programming and Scripting

Passing awk through ssh help

First off we have hundreds of webservers in our farm that we sometimes have to collect logs for customers. Thing is the script that I currently am working on doesnt like my awk commands via ssh. I am very novice at best so all help would be greatly appreciated. ssh a$active "awk... (9 Replies)
Discussion started by: gbarnes
9 Replies

10. Shell Programming and Scripting

awk using ssh variable?

I have a file named Atoms that has a list of atoms listed vertically, like: O C Na etc. There is a variable number of them. I want to count their occurences in another file. I want to do this by saving each atom as a variable, preferabbly in an associative array, then counting how... (3 Replies)
Discussion started by: RisingSun
3 Replies
Login or Register to Ask a Question