A
AlexK
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:
kriege ich folgende Ausgabe:
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.
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.