Ersetzen von Text mit Datei-Inhalt

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von AlexK, 06.03.2008.

  1. AlexK

    AlexK Grünschnabel

    Dabei seit:
    06.03.2008
    Beiträge:
    1
    Zustimmungen:
    0
    Hy,

    ich komme mit meinem Skript nicht mehr weiter ... egal wie ich versuche auf die Lösung zu kommen passt immer irgendetwas nicht.

    Mein Skript soll in einem Verzeichnis alle Dateien mit der Dateiendung *.stderr sowie deren Inhalt im JSON-Format ausgeben. Ansich klappt das schon nur ich bekomme den Inhalt der Dateien nicht in die Ausgabe.

    Da dieses Skript auf einem Router läuft, hab ich nicht jede art von Skriptsprachen wie perl, ruby usw. zur Verfügung.

    Hab aber unter anderem folgende Programme drauf: echo,sed,awk,head,tail,wc,cat,grep,printf,tr kann man also sagen die Standard-Programme für solche zwecke.

    Mit diesem Code:
    Code:
    #!/bin/sh
    find *.stderr | awk '
    BEGIN {
    	FS=" "
    	string=","
    	i=0
    }
    {
    	if($0 == "") {
    		continue
    	}
    	i+=1
    	line[i] = "{\n"
    	line[i] = line[i]"\t\t\"name\":\""$0"\",\n"
    	line[i] = line[i]"\t\t\"content\":\"\"\n"
    	line[i] = line[i]"\t}"
    
    }
    END {
    	print "{"
    	print "\"files\":["
    	for(n=1;n<=i;n++) {
    		if(n==i) { string = "" }
    		print "\t"line[n]string
    	}
    	print "]"
    	print "}"
    }'
    kriege ich folgende Ausgabe:
    Code:
    {
    "files":[
    	{
    		"name":"KNOPPIX_V5.1.1CD-2007-01-04-DE.iso.stderr",
    		"content":""
    	},
    	{
    		"name":"allwaysync-7-1-2.exe.stderr",
    		"content":""
    	}
    ]
    }
    Kennt jemand einen Weg noch den Datei-Inhalt dieser *.stderr Dateien mit reinzubringen? Also in das "content"-Feld? Da awk keine externen Befehle wie cat unterstützt stehe ich irgendwie auf dem Schlauch und weis nicht weiter.

    Habe zwar von Javascript Ahnung nur nich viel in Linuxscripten.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gott_in_schwarz, 07.03.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    also ich weiß nicht, ob awk sowas wie 'ne fopen() funktion oder so hat. aber was spricht denn eigentlich dagegen einfach cat zu verwenden?

    entweder das oder du übergibts die datei an awk per kommandozeilenargument.

    und google told me, dass man damit sogar mehrere dateien nacheinander öffnen kann.
    also erst die dateinamen reinpipen und dann nacheinander "abarbeiten" im skript durch manipulation des ARGV arrays.. also so hab ich das jetzt mal verstanden. klingt aber ehrlich gesagt n bissl umständlich...

    und das von dir gepostete skript: wozu brauchst du denn bitte da awk? das kannst du ganz einfach auch direkt in der shell machen (mit ganz vielen echos ...) und dann halt awk verwenden, um die dateien selber zu verarbeiten...

    und btw: du bist nicht zufällig verwandt mit der person, die diesen thread hier eröffnet hat?
    awk in Verbindung mit Shell
    (nur so aus interesse...)
     
Thema:

Ersetzen von Text mit Datei-Inhalt

Die Seite wird geladen...

Ersetzen von Text mit Datei-Inhalt - Ähnliche Themen

  1. Unterschiedlichen Text in mehrere Dateien finden und löschen / ersetzen

    Unterschiedlichen Text in mehrere Dateien finden und löschen / ersetzen: Moin erstmal, ich suche nach einer Möglichkeit, in mehreren unterschiedlichen Dateien Text mit folgendem Muster zu suchen und zu löschen oder...
  2. Bash-Skript Text suchen und ersetzen mit unterschiedlichen Trennzeichen

    Bash-Skript Text suchen und ersetzen mit unterschiedlichen Trennzeichen: Hallo zusammen, ich habe bereits diverse Google-Suchergebnisse durchforstet, habe jedoch nirgendwo eine verwertbare Lösung für mein Anliegen...
  3. Suchen und ersetzen in einer Textdatei

    Suchen und ersetzen in einer Textdatei: Hallo, unter Umständen nochmal fast das ganze. Also, ich habe ein Problem. Möglicherweise habe ich das nur überlesen, allerdings habe ich heute...
  4. Platzhalter in Textdatei durch den Inhalt einer anderen Datei ersetzen

    Platzhalter in Textdatei durch den Inhalt einer anderen Datei ersetzen: Hallo, gibt es ein Kommando, mit dem ich einen Platzhalter in einer Textdatei durch den kompletten Inhalt einer anderen Textdatei ersetzen kann?...
  5. mehrzeiligen Text per Skript ersetzen

    mehrzeiligen Text per Skript ersetzen: //ERLEDIGT !!! Hallo Ihr alle, ich habe hier ein kleines Problemchen mit dem ersetzen von mehrzeiligem Text per Skript. was ich machen...