如何打印正在下载的文件的名称

时间:2015-09-11 05:11:56

标签: bash

我尝试编写一个bash脚本,从网站上下载所有.txt文件' http://www1.ncdc.noaa.gov/pub/data/ghcn/daily/'。

到目前为止,我有wget -A txt -r -l 1 -nd 'http://www1.ncdc.noaa.gov/pub/data/ghcn/daily/',但我很难找到一种方法将每个文件的名称打印到屏幕上(下载时)。这就是我真正坚持的部分。如何打印名称?

思想?

编辑这是我到目前为止所做的,但我试图删除很多像ghcnd-inventory.txt</a></td><td align=...

这样的东西
wget -O-  $LINK | tr '"' '\n' | grep -e .txt | while read line; do
        echo Downloading $LINK$line ...
        wget $LINK$line
done

2 个答案:

答案 0 :(得分:0)

 CREATE DEFINER=`root`@`localhost` TRIGGER `abcd`.`library_AFTER_UPDATE`
            AFTER UPDATE ON `library` FOR EACH ROW
            begin
             UPDATE another_table SET same_field = NEW.same_field
             WHERE some_filter_condition;
            end

答案 1 :(得分:0)

Sundeep的答案略有优化:

LINK='http://www1.ncdc.noaa.gov/pub/data/ghcn/daily/'
wget -q -O- $LINK | sed -E '/.*href="[^"]*\.txt".*/!d;s/.*href="([^"]*\.txt)".*/\1/' | wget -nv -i- -B$LINK

sed命令会删除所有与href="xxx.txt"不匹配的行,并仅提取其他行的xxx.txt部分。然后它将结果传递给另一个wget,它将其用作要检索的文件列表。 -nv选项告诉wget尽可能不那么冗长。因此,它将打印当前下载的文件的名称,但几乎没有其他内容。警告:这仅适用于此特定网站,不会下降到子目录中。