Drucken Sie einen String an seiner eigenen Stelle in der Unix-Shell

Drucken Sie einen String an seiner eigenen Stelle in der Unix-Shell

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 echoan 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 textin 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.

verwandte Informationen