我有如下示例数据:
aaa/bbb/ccc/ddd/eee/fff
aaa/bbb/ccc/ddd/eee/fff/gg
aaa/bbb/ccc/ddd/eee/fff/gg/hhhhh
我怎样才能解析出:
fff
gg
hhhhh
使用 vim 还是 bash?
谢谢
答案1
您可以使用awk
。您想要最后一个字段,但您有不同的分隔符。
-F:——字段分隔符。
Awk NF 为您提供记录中的字段总数,所以当我说 NF 时,它保存最后一个字段编号或其索引。所以 {print $NF} 类似于 { print $1} 或 {print $2}。
➜ awk -F'/' '{print $NF}' test.txt
fff
gg
hhhhh
答案2
使用 Vim,您可以使用以下命令删除最后一个斜杠 ( /
) 之前的所有内容:
:%s/.*\///
你可以做类似的事情sed
:
sed 's/.*\///' file
答案3
Bash 可能不是这种情况的首选:
mapfile -t < data; printf %s\\n "${MAPFILE[@]##*/}"