
我有範例數據,例如:
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[@]##*/}"