如何提取第一列括号内内容并拼接第二列生成Drupal指定格式下载URL
完整实现方案
你直接使用如下awk命令即可一步完成提取+拼接生成目标URL的需求:
awk -F '[()]' '{print "https://ftp.drupal.org/files/projects/" $2 "-" $NF ".tar.gz"}' 输入文件路径
命令说明
- 用
[()]作为字段分隔符,$2直接取到第一列括号内的项目机器名,和你之前的提取逻辑完全一致 $NF是awk内置变量,代表当前行的最后一个字段,会自动匹配到每行末尾的版本号,不需要额外处理列之间的对齐空白- 直接按要求的格式拼接字符串输出即可
使用示例
如果你把示例输入保存为drupal_modules.txt,运行命令:
awk -F '[()]' '{print "https://ftp.drupal.org/files/projects/" $2 "-" $NF ".tar.gz"}' drupal_modules.txt
就会直接输出符合要求的目标结果:
https://ftp.drupal.org/files/projects/admin_toolbar-8.x-2.5.tar.gz https://ftp.drupal.org/files/projects/entity_embed-8.x-1.2.tar.gz https://ftp.drupal.org/files/projects/viewsreference-8.x-2.0-beta2.tar.gz https://ftp.drupal.org/files/projects/webform-8.x-5.28.tar.gz
如果需要把结果保存到文件,只需要在命令末尾追加输出重定向即可:
awk -F '[()]' '{print "https://ftp.drupal.org/files/projects/" $2 "-" $NF ".tar.gz"}' drupal_modules.txt > drupal_download_urls.txt
内容的提问来源于stack exchange,提问作者tleo
相关产品推荐
相关产品推荐

