我有以下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
答案 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