我如何使用 awk 只抓取 "name_of_package.rpm?"

How do I use awk to only grab "name_of_package.rpm?"

我试图从 10,000 多个可用于 CentOS 7 的软件包列表中仅获取 "name_of_package.rpm"。我已经尝试了各种 iterations/combinations 的 awk 和 grep 但无济于事。我已经尝试使用 Google 以及此处提出的其他问题的一些想法,但目前似乎对我没有任何帮助。感谢任何帮助!

awk -F '\w' '{print }' /data/rpm-list
cat /data/rpm-list | grep -o "\w*\.rpm\w*"\
cat /data/rpm-list | grep -o "*\.rpm"

这就是我要解析的内容:

[   ]   389-ds-base-1.3.8.4-15.el7.x86_64.rpm   2018-11-12 14:21    1.7M     
[   ]   389-ds-base-devel-1.3.8.4-15.el7.x86_64.rpm 2018-11-12 14:21    271K     
[   ]   389-ds-base-libs-1.3.8.4-15.el7.x86_64.rpm  2018-11-12 14:21    698K     
[   ]   389-ds-base-snmp-1.3.8.4-15.el7.x86_64.rpm  2018-11-12 14:21    167K     

我只想要没有“[]”、日期或大小的 "name_of_package.rpm"。我完全打算通过脚本传递此列表,该脚本会将所有内容及其依赖项下载到我可以离线使用的个人实验室服务器。干杯!

从您显示的示例输入看来,您可以简单地执行(再次完全基于您显示的示例 Input_file)。

awk '{print }'  Input_file

编辑: 如果您对字段编号及其字段值更感兴趣,那么您可以 运行也遵循命令。

awk '{for(i=1;i<=NF;i++){print "Field number is: "i " Field value is: "$i}}' Input_file