我试图从我的shell运行这个:
我有一堆机器,所以我有这个在我的.bash_profile
function sssh() { ssh -i ~/.ssh/supersecret.pem $@ }
这是命令:
export BOX=mybox.a.domain.com sssh www-data@$BOX "tail -n 1 /path/to/logs/some.log | awk -F '\t' '{print $1}'"
日志文件由制表符分隔。 因此awk上的-F '\t' – 这正是问题所在。 它逃脱了,没有向我展示我想要的列。 当我运行tail -n 1 /path/to/logs/some.log | awk -F '\t' '{print $1}' tail -n 1 /path/to/logs/some.log | awk -F '\t' '{print $1}'在盒子上按预期工作。 我怎样才能解决这个问题?
经过一些反复试验,我find了答案:
ssh www-data@$BOX "tail -n 1 /server/musicgraph/prod/logs/dao.log | awk -F\$'\\t' '{print \$1}'"