我想通过运行命令获取存储库下的所有文件/导演名称。是否有像wget
这样的命令行工具来执行此操作?
例如:存储库网址为repository
我想获得档案/导演名单
的列表1.0 /
1.1A /
1.1B /
1.1C /
1.1D /
1.2 /
1.3 /
1.4 /
1.6 /
1.8 /
1.9 /
2.0 /
2.1 /
2.2 /
2.3 /
2.4 / binaries / doc / stable / index.txt
ruby-1.8.5-p115.tar.bz2 ruby-1.8.5-p115.tar.gz ruby-1.8.5-p115.zip
ruby-1.8.6-p114.tar.bz2 ruby-1.8.6-p114.tar.gz ruby-1.8.6-p114.zip
ruby-1.8.6-p383.tar.bz2 ruby-1.8.6-p383.tar.gz ruby-1.8.6-p383.zip
ruby-1.8.6-p388.tar.bz2 ruby-1.8.6-p388.tar.gz ruby-1.8.6-p388.zip
ruby-1.8.6-p398.tar.bz2 ruby-1.8.6-p398.tar.gz ruby-1.8.6-p398.zip
ruby-1.8.6-p399.tar.bz2 ruby-1.8.6-p399.tar.gz ruby-1.8.6-p399.zip
ruby-1.8.6-p420.tar.bz2 ruby-1.8.6-p420.tar.gz ruby-1.8.6-p420.zip
ruby-1.8.7-p174.tar.bz2 ruby-1.8.7-p174.tar.gz ruby-1.8.7-p174.zip
ruby-1.8.7-p248.tar.bz2 ruby-1.8.7-p248.tar.gz ruby-1.8.7-p248.zip
ruby-1.8.7-p249.tar.bz2 ruby-1.8.7-p249.tar.gz ruby-1.8.7-p249.zip
...
答案 0 :(得分:2)
您可以使用wget
并过滤结果:
wget -O - "https://ruby.taobao.org/mirrors/ruby/" | grep href | cut -d"\"" -f 2 > list.txt
现在cat list.txt
会给出:
../
1.0/
1.1a/
1.1b/
1.1c/
1.1d/
1.2/
1.3/
1.4/
1.6/
1.8/
1.9/
2.0/
2.1/
2.2/
2.3/
2.4/
binaries/
doc/
stable/
index.html
index.txt
...
答案 1 :(得分:0)
使用正则表达式解析xml / html并不是一个好主意。然而,它有助于脏和快速使用。请注意,请勿将其放入生产代码中。
使用正则表达式,您可以做更多。检查HTML代码后,这些行应该适合您:
curl 'url'|grep -Po '(?<=>)[^<]+'
或
curl 'url'|grep -Po '(?<=>)[^<]+(?=</a>)`
第二个将在<a href="foo">KEY</a>