首页 > 解决方案 > 使用 awk 时缺少一些文件夹名称

问题描述

我正在尝试在 /share/volume_repository 之后 grep 文件夹名称

c20_testprd_108

/share/volume_repository/c20_testprd_108_2018-01-0912:15:51.469
/share/volume_repository/test_testprd_20_2019-03-0504:03:24.24
/share/volume_repository/c20_testprd_109_2018-01-0912:11:32.915
/share/volume_repository/hp_testprd_2003_2018-10-2917:51:24.724
/share/volume_repository/hp_testprd_3335_2019-01-2220:00:17.139
/share/volume_repository/hp_testprd_2002_2018-10-2917:49:15.605
/share/shared_volume_repository/fnolan_ha_testprd_02_2018-06-2621:31:23.405

我试图通过 cut 和 awk 的组合来获取,如果我使用字段分隔符 _20 在 awk 中它会删除一些文件夹名称。

cat abc |cut -d '/' -f 4|awk -F '_20' '{print $1}'

输出:

c20_testprd_108
test_testprd
c20_testprd_109
hp_testprd
hp_testprd_3335
hp_testprd
fnolan_ha_testprd_02

预期的输出是

c20_testprd_108
test_testprd_20
c20_testprd_109
hp_testprd_2003
hp_testprd_3335
hp_testprd_2002
fnolan_ha_testprd_02

标签: regexawk

解决方案


使用 GNU awk:

awk '{print $4}' FS='/|_....-..-....' file

输出:

c20_testprd_108
test_testprd_20
c20_testprd_109
hp_testprd_2003
hp_testprd_3335
hp_testprd_2002
fnolan_ha_testprd_02

推荐阅读