【发布时间】:2020-10-30 06:36:08
【问题描述】:
我正在尝试从远程服务器上的文件中获取一组特定的值。通过终端执行该命令时,该命令可以正常工作。
第一个 ssh 命令
sshpass -p password ssh -T user@ip
第二个 Awk 命令
find /opt/Info_Source/*daily* -type f -mtime -1 -exec zcat {} \; 2>/dev/null | awk -F, -v OFS=',' '$5 ~ /Valid/ && length($2) {print $2}'
但如果我将它们结合在一个脚本中
#!/bin/ksh
emp_id=`sshpass -p password ssh -T user@ip -q << EOF
find /opt/Info_Source/*daily* -type f -mtime -1 -exec zcat {} \; 2>/dev/null |
awk -F, '$5 ~ /Valid/ && length($2) {print $2}'
exit
EOF `
echo "$emp_id" > Request.txt
我收到此错误
awk: ~ /Valid/ && length() {print }
awk: ^ syntax error
知道如何解决这个问题吗?
【问题讨论】:
-
如果您不使用命令替换使事情复杂化,这会更简单。只需将命令的输出直接写入文件即可。
标签: bash awk ssh remote-access ksh