Da Sie ein sed
Tag haben, ist hier eine sed
Antwort:
echo "$word" | sed -e "{ s/^\(.\).*/\1/ ; q }"
Spiel für Spiel für diejenigen, die diese genießen (das tue ich!):
{
s
: Starten Sie eine Substitutionsroutine
/
: Geben Sie an, was ersetzt werden soll
^\(.\)
: Erfassen Sie das erste Zeichen in Gruppe 1
.*
:, stellen Sie sicher, dass der Rest der Zeile ersetzt wird
/
: Geben Sie den Ersatz an
\1
: Gruppe 1 einfügen
/
: Der Rest wird verworfen;
q
: Beenden, sed
damit dieser Block nicht für andere Zeilen wiederholt wird, falls vorhanden.
}
Na das war ein Spaß! :)
Sie können auch grep
und etc verwenden, aber wenn Sie in bash
der ${x:0:1}
Magie sind, ist immer noch die bessere Lösung imo. (Ich habe ungefähr eine Stunde damit verbracht, die POSIX-Variablenerweiterung zu verwenden, konnte dies aber nicht :(
)
-c
in POSIX head keine Option gibt : < unix.com/man-page/posix/1/head >.