IWie eine Zeile pro Datei mit Shell-Skript oder sed
#file.txt
VAR1=foo
VAR2=bar
VAR3=moo
müssen exportieren Ich brauche drei Dateien: VAR1, VAR2 und VAR3 und enthält
#VAR1
foo
#VAR2
bar
#VAR3
moo
IWie eine Zeile pro Datei mit Shell-Skript oder sed
#file.txt
VAR1=foo
VAR2=bar
VAR3=moo
müssen exportieren Ich brauche drei Dateien: VAR1, VAR2 und VAR3 und enthält
#VAR1
foo
#VAR2
bar
#VAR3
moo
du wie so tun können:
#!/bin/bash
while read line
do
filename=${line%=*}
content=${line#*=}
echo "${content}" > "${filename}"
done < file.txt
Nicht. Siehe [warum-ist-mit-a-Shell-Loop-to-Process-Text-als-bad-Praxis] (http://unix.stackexchange.com/questions/169716/why-is-using-a-shell -loop-to-process-text-betrachtet-schlechte-Praxis). –
Notiert, löst diesen spezifischen Anwendungsfall korrekt. Kann aber wahrscheinlich etwas in einer anderen Sprache schreiben. – ffledgling
Nicht unbedingt. Es hängt alles davon ab, was 'foo' usw. wirklich sind. Wenn sie einen umgekehrten Schrägstrich, ein Leerzeichen oder Gleichheitszeichen oder ... enthalten, wird das Skript fehlschlagen (Hinweis: ** immer ** verwenden, während IFS = Lese-Zeile), es sei denn, Sie haben einen bestimmten Zweck im Sinn so und vollständig verstehen alle Implikationen). Es ist auch eine Größenordnung langsamer als beispielsweise ein awk-Skript, aber das ist nur wichtig, wenn die Datei groß ist. –
Siehe [fragen] und versuchen Sie es erneut. –