AWK变量输入

时间:2015-07-01 07:55:38

标签: bash awk

我有以下bash代码:

md5sum -c checksum.md5 2>&1 | grep FAILED | awk '{print $1}' | sed 's/:$// > /tmp/check.tmp
awk '{system("wget http://example.com/"$1"")}' /tmp/check.tmp

如何在没有临时文件的情况下使用awk?

这样的东西
files=`md5sum -c checksum.md5 2>&1 | grep FAILED | awk '{print $1}' | sed 's/:$//`
awk '{system("wget http://example.com/"$1"")}' $files

3 个答案:

答案 0 :(得分:2)

您可以将整个命令简化为:

md5sum -c checksum.md5 2>&1 |\
    awk -F'[:/]' '/FAILED/{system("wget http://example.com/"$(NF-1))}'

答案 1 :(得分:2)

wget有一个可以派上用场的开关-i

md5sum -c checksum.md5 2>&1 | \
    sed -n '/FAILED$/ { s/: FAILED$//; s!^!http://example.com/!; p; }' | \
    wget -i

答案 2 :(得分:1)

像这样:

awk '{system("wget http://example.com/"$1"")}' <<< $files