AWK 知识与技巧
使用match匹配关键字并且输出匹配内容
命令
cat wget-list-USTC.row | grep -v '^$' | awk '{match($0,/<a href="(.+)">/,a); print "http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/"a[1]}' > wget-list
实际例子
cat wget-list-USTC.row | head
<a href="Python-3.8.1.tar.xz">Python-3.8.1.tar.xz</a> 18-Dec-2019 21:30 17828408
<a href="XML-Parser-2.46.tar.gz">XML-Parser-2.46.tar.gz</a> 24-Sep-2019 05:29 254763
<a href="acl-2.2.53.tar.gz">acl-2.2.53.tar.gz</a> 16-Aug-2018 16:36 524300
<a href="attr-2.4.48.tar.gz">attr-2.4.48.tar.gz</a> 16-Aug-2018 16:36 467840
<a href="autoconf-2.69.tar.xz">autoconf-2.69.tar.xz</a> 16-Aug-2018 16:36 1214744
<a href="automake-1.16.1.tar.xz">automake-1.16.1.tar.xz</a> 16-Aug-2018 16:36 1534936
<a href="bash-5.0-upstream_fixes-1.patch">bash-5.0-upstream_fixes-1.patch</a> 01-Dec-2019 16:25 21672
<a href="bash-5.0.tar.gz">bash-5.0.tar.gz</a> 07-Jan-2019 14:13 10135110
<a href="bc-2.5.3.tar.gz">bc-2.5.3.tar.gz</a> 01-Feb-2020 16:02 252149
<a href="binutils-2.34.tar.xz">binutils-2.34.tar.xz</a> 01-Feb-2020 12:24 21637796
cat wget-list-USTC.row | grep -v '^$' | awk '{match($0,/<a href="(.+)">/,a); print "http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/"a[1]}' > wget-list
cat wget-list | head
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/Python-3.8.1.tar.xz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/XML-Parser-2.46.tar.gz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/acl-2.2.53.tar.gz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/attr-2.4.48.tar.gz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/autoconf-2.69.tar.xz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/automake-1.16.1.tar.xz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/bash-5.0-upstream_fixes-1.patch
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/bash-5.0.tar.gz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/bc-2.5.3.tar.gz
http://mirrors.ustc.edu.cn/lfs/lfs-packages/9.1/binutils-2.34.tar.xz
解析
match($0,/<a href="(.+)">/,a)
match函数接收3个参数,第一个为输入,$0表示整行数据。第二个参数为正则匹配,参数内括号匹配到的内容按顺序保存到第三个参数命名的列表中,该例子为a,使用a[1]调用第一个括号匹配的内容,a[2]第二个括号内容,以此类推。
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏