2017-04-24 3 views
0

sagen, dass ich eine Textdatei, die von dem Format ist:Wie entferne ich den ersten Teil jeder Zeile?

S1:I am line one. 
S2:I am line two. 
S3:I am line three. 
S4:I am line four. 

Wie kann ich den ID-Teil jeder Zeile entfernen (so, dass ich nur mit I am line one. und so weiter links bin)? Ist es besser, das Eingabesatztrennzeichen $/ zu ändern oder eine Regex zu verwenden, die ID entfernt?

Antwort

3

So vielleicht? Es verwendet einen regulären Ausdruck, der alles bis einschließlich dem ersten Doppelpunkt entspricht : und entfernt es

perl -pe 's/^[^:]*://' myfile > newfile 

Innerhalb eines Programms:

open my $fh, '<', $filename or die qq{Unable to open "$filename" for input: $!}; 

while (<$fh>) { 

    s/^[^:]*://; 

    # Use remainder of line left in $_ 
} 
+0

Ich tue dies in einem Skript, und nicht auf der Kommandozeile . Wird dieser Regex innerhalb der Split-Funktion funktionieren, wie es Pablo vorgeschlagen hat? –

+0

@KyleWeise: Siehe das Update zu meiner Antwort – Borodin

+0

Ehrfürchtig funktioniert das. Danke Borodin! –

Verwandte Themen