小编Nec*_*der的帖子

两个 ssh 输出作为 awk 输入

我有两个正在尝试的远程服务器sshcat一些文件..我想将 ssh 的输出输入到awk命令中。

\n

这就是我所拥有的

\n
\nssh username@host1 \xe2\x80\x9ccat /tmp/test/*\xe2\x80\x9d ssh username@host2 \xe2\x80\x9ccat /tmp/test/*\xe2\x80\x9d | awk \xe2\x80\x98 command \xe2\x80\x98\n
Run Code Online (Sandbox Code Playgroud)\n

但这不起作用,如果host2目录为空,则输出host1会重复两次。

\n

我在这里做错了什么?

\n

shell bash ssh awk shell-script

4
推荐指数
2
解决办法
516
查看次数

ARGV[] 不接受参数

我有一个 shell 脚本,我试图date向其传递参数ARGV[1],但该脚本给出了空白输出

这是命令:

#!/bin/bash
dt=$(date -d "yesterday" '+%m%d%Y')
cat /tmp/log.$AUTOSERVE.$dt \
  | perl -ne '/STATUS:\s+(\w+).+MACHINE:\s+(\w+.\w+.\w+)$/ && print join( "\t", $1, $2 ). "\n"' \
  | grep -E '(SUCCESS|FAILURE|TERMINATED)' \
  | cut -f2 \
  | sort \
  | uniq -c \
  | perl -ne '/^\s+(\d+)\s+(.*)$/ && print join("\t", '$ARGV[1]', $ENV{AUTOSERV}, $2, $1) . "\n"' $date_YYYYMMDD \
  > /tmp/output.txt
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

让我解释一下我想在这里做什么:

我们每天都会生成日志文件,其名称如下

log.$AUTOSERVE.mmddyyyy

日志文件包含如下数据:

更改了输入日期以便更好地理解:

#!/bin/bash
dt=$(date -d "yesterday" '+%m%d%Y')
cat /tmp/log.$AUTOSERVE.$dt \
  | perl -ne '/STATUS:\s+(\w+).+MACHINE:\s+(\w+.\w+.\w+)$/ …
Run Code Online (Sandbox Code Playgroud)

shell bash perl shell-script

2
推荐指数
2
解决办法
785
查看次数

标签 统计

bash ×2

shell ×2

shell-script ×2

awk ×1

perl ×1

ssh ×1