Der String ist: fs=/apps/ow/abc/xyz/def/
Können/Apps aus einer Variablen mit/apps/ow/... in einer Zeile extrahiert werden?
IFS=/ read -r fs fs rest <<< "$fs"
fs="/"$fs
ich nur /apps
nur erste Teil heißt ausgegeben extrahieren möchte, sollte - in einem Liner.
Es gibt verschiedene Techniken einschließlich Lese-und String-Löschung in Bash, aber ich möchte Single-Liner eingebauten Bash-Befehl ohne externe Bash-Befehl verwenden.
Im Allgemeinen sind Quests für einen Einzeiler eine schlechte Idee. Sie sollten versuchen, lesbaren, wartbaren Code zu erstellen, nicht Code, der auf kluge Weise knapp ist. –
@Aaron, das müsste '<<<" $ fs "' sein, und es schneidet die führende '/'. Es ist auch extrem ineffizient zur Laufzeit, da es ein externes Tool nur für die Verarbeitung einer Zeile in Gang setzt. Native String-Manipulationen, wie sie in [BashFAQ # 100] (http://mywiki.wooledge.org/BashFAQ/100) angegeben sind, sind im Allgemeinen vorzuziehen - obwohl, wenn das OP * wahrhaftig * Knappheit bevorzugt, sie vielleicht * etwas * wollen ein Befehl dauert aber 100 mal länger, im Gegensatz zu zwei separaten internen Befehlen? –
@CharlesDuffy right, danke für die Info – Aaron