我有两个正在尝试的远程服务器ssh
和cat
一些文件..我想将 ssh 的输出输入到awk
命令中。
这就是我所拥有的
\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我有一个 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)