2016-08-10 2 views
2

Ich habe eine Datei, die ich mehrmals durchlaufen muss, indem ich sie jedesmal mit Python ausführe. Wie kann ich Zeichen aus bestimmten Zeilen in der Shell entfernen oder hinzufügen?Wie kann ich Zeichen von einer bestimmten Zeilennummer in der Shell hinzufügen oder entfernen?

für eine Beispieldatei ex.file,

$ cat ex.file 
stuff 
more stuff 
more stuff 
more stuff 
#<- remove this character 
<-add a pund sign here 
more stuff 
more stuff 

meine gewünschte Ausgabe wäre:

sed '6 s/^/#/' ex.file 

:

$ cat ex.file 
stuff 
more stuff 
more stuff 
more stuff 
<- remove this character 
#<-add a pund sign here 
more stuff 
more stuff 

Antwort

3

Um ein # am Anfang der Zeile 6 hinzufügen Um die führende # von Zeile 5 zu entfernen:

sed '5 s/^#//' ex.file 
+0

Wie leite ich sed zu 'ex.file'? – kilojoules

+0

@kilojoules: Siehe meine Bearbeitung. Sie können 'sed -i' anstelle von' sed' verwenden, um die Datei an Ort und Stelle zu bearbeiten, oder Sie können sie in eine neue Datei wie 'sed ...> newfile' schreiben. –

+0

Vielen Dank! Wie kann ich 'ex.file' überschreiben? – kilojoules

1

Oneliner awk Version zum Entfernen # von der 5. Zeile und fügen Sie # zur 6. Zeile hinzu.

awk 'NR==5 {sub(/^#/,"") } NR==6 { sub(/^/,"#")}1' infile 
Verwandte Themen