Fügen Sie einer tabulatorgetrennten Datei eine Kopfzeile hinzu

8

Ich würde gerne einen Header zu einer Tab-Delimited-Datei hinzufügen, aber ich bin mir nicht sicher, wie man es in einer Zeile in Linux macht.

Sagen wir, meine Datei ist:

%Vor%

und jetzt möchte ich eine Überschrift hinzufügen, die sagt:

%Vor%

Wie würde ich das in einer Zeile in Linux machen? Ich bin ok mit awk, sed, cat, etc. überhaupt nicht vertraut mit Perl.

    
Dnaiel 15.10.2012, 19:17
quelle

6 Antworten

12

Es gibt keinen "prepend" -Operator wie den "append" -Operator >> , aber Sie können den Header in eine Temp-Datei schreiben, den Inhalt Ihrer Datei danach in die Temp-Datei kopieren und zurück verschieben :

%Vor%     
newfurniturey 15.10.2012, 19:22
quelle
8
___ qstnhdr ___ Fügen Sie einer tabulatorgetrennten Datei eine Kopfzeile hinzu ___ qstntxt ___

Ich würde gerne einen Header zu einer Tab-Delimited-Datei hinzufügen, aber ich bin mir nicht sicher, wie man es in einer Zeile in Linux macht.

Sagen wir, meine Datei ist:

%Vor%

und jetzt möchte ich eine Überschrift hinzufügen, die sagt:

%Vor%

Wie würde ich das in einer Zeile in Linux machen? Ich bin ok mit awk, sed, cat, etc. überhaupt nicht vertraut mit Perl.

    
___ answer12902536 ___

Erstellen Sie zuerst eine Datei mit dem Header-Inhalt:

%Vor%

(wobei %code% der Tabulatorschlüssel ist)

Dann fügen Sie es den Daten voran

%Vor%     
___ answer12908530 ___
%Vor%     
___ tag123linux ___ LINUX FRAGEN MÜSSEN PROGRAMMIEREN VERWANDT SEIN. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf das Programmieren mit Linux-APIs oder das Linux-spezifische Verhalten bezieht, nicht nur, weil Sie Ihren Code unter Linux ausführen. Wenn Sie Linux-Unterstützung benötigen, können Sie https://unix.stackexchange.com oder https://askubuntu.com ausprobieren ___ answer12902882 ___

Persönlich würde ich mit %code% gehen ;-) (d. h. einfach einen Texteditor verwenden, muss natürlich nicht nano sein)

Wenn Sie dies jedoch aus irgendeinem Grund in einer nicht interaktiven Umgebung tun möchten, können Sie %code% für alle Arten von Verkettungen verwenden:

%Vor%

wird die Kopfzeile voranstellen und die Ausgabe in %code% setzen. Wenn Sie die Originaldatei überschreiben möchten, können Sie dies mit

tun %Vor%

Oder Sie könnten %code% wie folgt verwenden:

%Vor%

Beachten Sie, dass ich %code% quoting verwende, um %code% zur Darstellung von Tabulatoren und %code% zur Darstellung von Newline zu verwenden (unter anderen Substitutionen; weitere Informationen finden Sie in der bash man-Seite). Bei dieser Art von Zeichenfolge in Anführungszeichen steht %code% für einen umgekehrten Schrägstrich. Also ist das Programm, das an sed übergeben wird, tatsächlich

%Vor%     
___ answer12902547 ___

Es gibt keinen "prepend" -Operator wie den "append" -Operator %code% , aber Sie können den Header in eine Temp-Datei schreiben, den Inhalt Ihrer Datei danach in die Temp-Datei kopieren und zurück verschieben :

%Vor%     
___ tag123unix ___ Das Unix-Betriebssystem ist ein Allzweck-Betriebssystem, das von Bell Labs in den späten 1960er Jahren entwickelt wurde und heute in verschiedenen Versionen existiert. Wichtiger Hinweis: Dieses Tag dient ausschließlich zur Programmierung von Fragen, die direkt mit Unix zu tun haben; Allgemeine Softwareprobleme sollten an die Unix & Linux Stack Exchange-Site oder an Super User gerichtet werden. ___ answer47197656 ___
%Vor%     
___ tag123awk ___ AWK ist eine interpretierte Programmiersprache, die für die Textverarbeitung entwickelt wurde und in der Regel als Datenextraktions- und Berichtswerkzeug verwendet wird. AWK wird weitgehend mit Unix-Systemen verwendet. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf die Programmierung mit AWK- oder AWK-basierten APIs bezieht. Fragen zur Verwendung oder zur Fehlerbehebung von AWK-Befehlszeilenoptionen selbst sind nicht Thema. ___ tag123sed ___ Sed (Stream EDitor) ist ein Befehlszeilen-Editor für die POSIX-Umgebung. Sed verarbeitet eine oder mehrere Dateien gemäß einem Editier-Skript und schreibt die Ergebnisse in die Standardausgabe. Es wurde in den Bell Labs entwickelt und existiert seit Mitte der 70er Jahre. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf die Programmierung mit sed- oder sed-basierten APIs bezieht. Fragen zur Verwendung oder Problembehandlung von sed-Befehlszeilenoptionen selbst sind nicht Thema. ___ tag123cat ___ Der Befehl cat ist ein Standard-Unix-Programm zum Verketten und Anzeigen von Dateien. Der Name stammt von Catenate, einem Synonym von Verkettung. ___ antwort12902543 ___
%Vor%

Oder

%Vor%     
___
William Pursell 15.10.2012 19:21
quelle
6

Persönlich würde ich mit nano -w file.txt gehen ;-) (d. h. einfach einen Texteditor verwenden, muss natürlich nicht nano sein)

Wenn Sie dies jedoch aus irgendeinem Grund in einer nicht interaktiven Umgebung tun möchten, können Sie cat für alle Arten von Verkettungen verwenden:

%Vor%

wird die Kopfzeile voranstellen und die Ausgabe in file2.txt setzen. Wenn Sie die Originaldatei überschreiben möchten, können Sie dies mit

tun %Vor%

Oder Sie könnten sed wie folgt verwenden:

%Vor%

Beachten Sie, dass ich $'...' quoting verwende, um \t zur Darstellung von Tabulatoren und \n zur Darstellung von Newline zu verwenden (unter anderen Substitutionen; weitere Informationen finden Sie in der bash man-Seite). Bei dieser Art von Zeichenfolge in Anführungszeichen steht \ für einen umgekehrten Schrägstrich. Also ist das Programm, das an sed übergeben wird, tatsächlich

%Vor%     
David Z 15.10.2012 19:45
quelle
3
%Vor%     
Vijay 16.10.2012 06:09
quelle
1

Erstellen Sie zuerst eine Datei mit dem Header-Inhalt:

%Vor%

(wobei ^I der Tabulatorschlüssel ist)

Dann fügen Sie es den Daten voran

%Vor%     
wallyk 15.10.2012 19:21
quelle
0
%Vor%     
WCC 09.11.2017 09:01
quelle

Tags und Links