EOF中的AWK Grep没有结果

问题描述 投票:0回答:1

我正在将grep的结果传递到AWK,并将结果用作EOF中另一个grep的模式(不确定那里的术语是什么),但是AWK给了我空白的结果。以下是给我一些问题的bash脚本的一部分。

ssh "$USER"@logs << EOF
  zgrep $wgr $loc$env/app*$date* | awk -F":" '{print $5 "::" $7}' | awk -F"," '{print $1}' | sort | uniq | while read -r rid ; do
  zgrep $rid $loc$env/app*$date*;
done
EOF

我真的在这里画了一个空白,因为没有错误,而且我没有想法。

样品:

我正在查看如下所示的日志文件:

app-server.log.2020010416.gz:2020-01-04 16:00:00,441 INFO [redacted] (redacted) [rid:12345::12345-12345-12345-12345-12345,...

我对rid感兴趣,我可以再次在日志中重复该代码:

zgrep $rid $loc$env/app*$date*

locenvdate正常工作,但它们不在EOF范围内。

脚本作为一个整体连接到ssh并正常退出,但是我没有任何结果。

bash awk grep eof
1个回答
0
投票

[请您试一下。公平的警告,由于缺少样本,我无法对其进行测试。

##Configure/define your shell variables(wgr, loc, env, date, rid) here.
printf -v var_wgr %q "$wgr"
printf -v var_loc %q "$loc"
printf -v var_env %q "$env"
printf -v var_date %q "$date"
printf -v var_rid %q "$rid"

ssh -T -p your_pass root@"$host" "bash -s $var_str" <<'EOF'

# retrieve it off the shell command line
zgrep "$var_wgr $var_loc$var_env/app*$var_date*" | awk -F":" '{print $5 "::" $7}' | awk -F"," '{print $1}' | sort | uniq | while read -r rid ; do
zgrep "$var_rid $var_loc$var_env/app*$date*";
done
EOF
© www.soinside.com 2019 - 2024. All rights reserved.