我尝试使用ssh运行远程awk语句。我的代码是:使用ssh运行远程awk命令
ssh [email protected] "awk 'NR==1 {max=0;min=1} NR>1 {if (max<\$3) max=\$3}END {print max}' FS=\",\" /path_to_my_file"
当我运行此命令,我没有收到错误信息,但命令不工作,不产生输出,但只是挂,所以我需要通过CTRL + C取消它。
有什么我失踪?
我尝试使用ssh运行远程awk语句。我的代码是:使用ssh运行远程awk命令
ssh [email protected] "awk 'NR==1 {max=0;min=1} NR>1 {if (max<\$3) max=\$3}END {print max}' FS=\",\" /path_to_my_file"
当我运行此命令,我没有收到错误信息,但命令不工作,不产生输出,但只是挂,所以我需要通过CTRL + C取消它。
有什么我失踪?
试试这个使用这里-DOC:
ssh -t [email protected] <<'EOF'
awk '
NR==1 {max=0;min=1}
NR>1 {if (max<$3) max=3}
END {print max}
' FS="," /path_to_my_file
EOF
各地EOF
单引号防止shell扩展。
什么是在'awk'命令之后执行'FS ='的命令?也许你打算做'awk -v FS =,'...''而不是? – janos
这两个作品janos。 –
janos是正确的,我认为FS后混淆ssh而双引号,而我用\逃避他们,但它看起来没有工作。使用ssh username @ hostIP“awk -v FS =,'NR == 1 {max = 0; min = 1} NR> 1 {if(max <\ $ 3)max = \ $ 3}的格式END {print max} '/ path_to_file“命令产生了期望的结果。谢谢。 – JavaRed