Wie kann man jede Zeile einer Datei von der Linux-Befehlszeile aus wiederholen?

804
PJ Brunet

So erstellen Sie eine Datei wie:

one two three ... 

in:

one one two two  three three ... 

Ich denke, das muss mit einem einfachen Linux-Befehl möglich sein. Wenn mein Editor über Blockauswahl oder Makros verfügte, könnte ich dies problemlos tun. Ich benutze jetzt Geany. Vielleicht muss ich die Editoren erneut wechseln oder ein Geany-Plugin finden.

0
Am Ende habe ich SlickEdit (den ursprünglichen "E" -Editor) installiert und ein Makro aufgenommen, um die aktuelle Zeile zweimal auszuschneiden / einzufügen, zur nächsten Zeile zu springen und dann Strg + F12 gedrückt zu halten. Wenn ich am Ende nicht SlickEdit kaufe, werde ich diese anderen Antworten im Auge behalten. PJ Brunet vor 12 Jahren 0

2 Antworten auf die Frage

3
hlovdal

Sie benötigen den pasteBefehl:

$ cat > file one two three four ... $ paste file file one one two two three three four four ... ... $ 
Beachten Sie, dass `paste` standardmäßig Tabulatoren als Trennzeichen verwendet. Sie können dies mit der Option` -d` überschreiben: `paste -d '' file file> outputfile` Jean-Karim Bockstael vor 7 Jahren 0
0
RedGrittyBrick
$ cat t ccc ddd aaa bbb  $ perl -p -i -e 's/.*/$& $&/' t  $ cat t ccc ccc ddd ddd aaa aaa bbb bbb 
Ich habe ein bisschen mit deiner Antwort gespielt, das scheint auch zu funktionieren: `sed's /.*/& & / 't` PJ Brunet vor 12 Jahren 0