Kann ich die &-Variable von sed verwenden, um Operationen innerhalb von $() durchzuführen?

Kann ich die &-Variable von sed verwenden, um Operationen innerhalb von $() durchzuführen?

Ich bin nicht sicher, ob die folgende Anweisung ausgeführt werden kann, indem & in $() eingefügt wird, sodass & jedes Mal durch 1,2,3,4 ersetzt und 1 hinzugefügt wird.

echo 1 2 3 4 | tr ' ' '\n' | sed "s/.*/$(echo expr 1 + &)/"

Die obige Anweisung funktioniert nicht

ich bekomme die Ausgabe:

expr 1 +
expr 1 +
expr 1 +
expr 1 +

Antwort1

Wenn Sie nichtbrauchensedHier sind ein paar andere Optionen, die Sie hierfür verwenden können :

$ echo 1 2 3 4 | tr ' ' '\n' | while read f; do let f+=1; echo $f; done
2
3
4
5
$ echo 1 2 3 4 | tr ' ' '\n' | awk '{print $1+1}'
2
3
4
5
$ echo 1 2 3 4 | tr ' ' '\n' | perl -lne '$i=$_+1; print $i'
2
3
4
5

sedist ein Stream-Editor und nicht für die Ausführung mathematischer Ausdrücke gedacht.

verwandte Informationen