Ich habe Strings namens:
%Vor%Wie lösche ich die Teilzeichenfolge
?.out
In diesen Zeichenfolgen?
Welchen Befehl soll ich verwenden? (Bourne Shell)
Wenn diese Zeichenfolgen in einer Datei gespeichert sind (nennen wir sie input_file
):
Sie können:
%Vor% Dadurch wird jedes Vorkommen der Teilzeichenfolge .out
aus dieser Datei entfernt.
Erläuterung:
sed
: Rufen Sie das sed -Tool zum Bearbeiten von Textströmen auf -i
: Verwenden Sie die Option "In-Place" - dies ändert die von Ihnen angegebene Eingabedatei, anstatt die Ausgabe in stdout
zu schreiben.
's/\.out//g'
: Verwenden Sie regulären Ausdruck, um .out
zu löschen. Das g
am Ende bedeutet, dass alle Vorkommen gelöscht werden. input_file
: Spezifizieren Sie die Eingabedatei Wenn diese Zeichenfolgen in Variablen gespeichert sind:
%Vor%Sie können Parameter ersetzen :
verwenden %Vor%Erläuterung:
Mehrere Möglichkeiten, eine Auswahl:
str=abc.out
Shell:
%Vor%Grep:
%Vor%Sed:
%Vor%Awk:
%Vor%Ausschneiden:
echo $str | cut -d. -f1
Alle Ausgaben:
%Vor%Um das kürzeste Suffix zu löschen, verwenden Sie im Allgemeinen:
%Vor%Um das längste Suffix zu löschen, verwenden Sie
%Vor%Ich fand das am besten, weil das Muster, das Sie verwenden möchten, in einer Variablen sein kann:
%Vor%Das Ergebnis ist:
abc