
Ich habe Beispieldaten wie:
aaa/bbb/ccc/ddd/eee/fff
aaa/bbb/ccc/ddd/eee/fff/gg
aaa/bbb/ccc/ddd/eee/fff/gg/hhhhh
Wie kann ich nur Folgendes analysieren:
fff
gg
hhhhh
mit vim oder bash?
Danke
Antwort1
Sie können verwenden awk
. Sie möchten das letzte Feld, haben aber ein anderes Trennzeichen.
-F: --Feldtrennzeichen.
Awk NF gibt Ihnen die Gesamtzahl der Felder in einem Datensatz. Wenn ich also NF sage, meine ich die letzte Feldnummer oder ihren Index. also ist {print $NF} ähnlich wie {print $1} oder {print $2}.
➜ awk -F'/' '{print $NF}' test.txt
fff
gg
hhhhh
Antwort2
Mit Vim können Sie Folgendes verwenden, um alles vor dem letzten Schrägstrich ( /
) zu entfernen:
:%s/.*\///
Sie könnten etwas Ähnliches tun mit sed
:
sed 's/.*\///' file
Antwort3
Bash ist hierfür wahrscheinlich nicht die erste Wahl:
mapfile -t < data; printf %s\\n "${MAPFILE[@]##*/}"