
Ich versuche, den Inhalt einer Textdatei (genauer gesagt die Zeichenfolgen) auszudrucken. Ich kenne einige Befehle wie grep
, awk
, sed
; Ich möchte die Zeichenfolge zwangsweise echo
an ihren ursprünglichen Platz in der Datei zurückversetzen, aber das geht nicht. Verstehen Sie??
Beispiel:
Unten ist ein Teil der String-Datei:
Dies ist eine Textdatei voller Zeichenfolgen ...
Jetzt möchte ich das Wort text
in der Bash-Datei drucken, aber nicht am Zeilenanfang. Ich möchte es an seiner eigenen Stelle drucken, und zwar so:
--------text---------------------------------
Und ohne Bindestriche. Wie kann ich es tun?
Antwort1
So etwas vielleicht?
$ echo 'This is a text file full of strings...' |
perl -pe 's/(^.*)(text)(.*$)/sprintf "%*s", length($1)+length($2), $2/e'
text
d. h. drucken Sie die passende Zeichenfolge in ein Feld mit einer Breite, die der Summe seiner Breite und der Breite des Präfixes entspricht.