So, ich versuche, Tabs nach den Zahlen in dieser Tabelle zu entfernen, die ich von der Befehlszeile formatiere. Unten ist die Original-Datentabelle, direkt aus der Datei in Frage coipied und eingefügt:Seltsames Verhalten mit `sed`
tretenFile Path Line Description
/home/nick/.bashrc 9 # TODO Chop this into code import files
/home/nick/.bashrc 204 # TODO Add $HOME/os-setup to OS installation disc
/home/nick/.bashrc 207 # TODO Custom power actions don't work; system tray notifications
Beim Hinzufügen eines endgültigen sed
Befehls an das Rohr jedoch einige seltsamen Verhalten. Als Beispiel betrachten wir die sed
Befehl unter:
cat somefile.txt | column -tx -s : | sed -e 's/\([0-9]\{1,\}\)/\1/g'
File Path Line Description
/home/nick/.bashrc 9 # TODO Chop this into code import files
/home/nick/.bashrc 204 # TODO Add $HOME/os-setup to OS installation disc
/home/nick/.bashrc 207 # TODO Custom power actions don't work; system tray notifications
Diese Zahlen in jeder Zeile der Tabelle findet, ersetzt dann das Spiel mit dem ersten Teil des regulären Ausdrucks. Da das gesamte Spiel in Klammern eingeschlossen ist, bedeutet dies, dass sich nichts ändert, da es von ihm selbst ersetzt wird.
Allerdings, wenn ich dann den gleichen sed
Befehl versuchen, aber ich füge Sie den \t
Charakter, eine wörtliche Registerkarte mit den Anpassungs die sed
Ausgabe regex scheint auch die Anzahl Spiel zu verkürzen! Siehe unten:
cat somefile.txt | column -tx -s : | sed -e 's/\([0-9]\{1,\}\)\t/\1/g'
File Path Line Description
/home/nick/.bashrc # TODO Chop this into code import files
/home/nick/.bashrc 20 # TODO Add $HOME/os-setup to OS installation disc
/home/nick/.bashrc 20 # TODO Custom power actions don't work; system tray notifications
Warum sed
die letzte Ziffer von jeder Nummer gestutzt? Wie kann ich sed
davon abhalten?
könnten Sie bitte den sed-Code mit dem \ t zeigen? –
interessant, kann es nicht reproduzieren –
@NickBull: Woher kam die Datei? – sjsam