2016-07-29 23 views

Antwort

1

du wie so tun können:

#!/bin/bash 

while read line 
do 
    filename=${line%=*} 
    content=${line#*=} 
    echo "${content}" > "${filename}" 
done < file.txt 
+0

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). –

+0

Notiert, löst diesen spezifischen Anwendungsfall korrekt. Kann aber wahrscheinlich etwas in einer anderen Sprache schreiben. – ffledgling

+0

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. –