Vielleicht kann mir jemand helfen, (am einfachsten) das Äquivalent des folgenden awk-Befehls mit sed zu finden:
echo "first:second:third"|awk -F ':' '{print $2}'
second
Antwort1
$ echo "a:b:c" | sed 's/^[^:]*:\([^:]*\):.*$/\1/'
b
Antwort2
Du könntest benutzen cut
.
echo "first:second:third" | cut -f 2 -d ":"
Ich denke, sed
das ist das falsche Werkzeug dafür. awk
Ist wahrscheinlich das sauberste.
Antwort3
Das funktioniert auch
echo "a:b:c" | sed 's|.*:\(.*\):.*$|\1|'
Dabei wird der Text zwischen (...) als \1 gespeichert und anschließend durch den gesamten String ersetzt.
Antwort4
Perl-Alternative:
echo "first:second:third" | perl -F':' -lane 'print $F[1]'