ich bash auf Cygwin bin mit.eine CSV-Datei Neuformatierung, Skript wird von verwirrt ‚%.“‘
Ich habe eine CSV-Datei zu nehmen, die eine Teilmenge von einer viel größeren Gruppe von Einstellungen und shuffle die neuen csv-einstellungen (gleiche schlüssel, verschiedene werte) in die mehr als 1000-linie original, eine neue .json-datei.
Ich habe ein Skript zusammengestellt, um dies zu automatisieren. Der erste Schritt in dem Prozess ist " Bereinigen Sie "die CSV-Datei durch Extrahieren von Zeilen, die mit" Mme "und" SMS "beginnen. Alles andere ist sauber zu übergeben, um die" saubere ". CSV-Datei
Diese Routine ist wie folgt:
# clean up the settings, throwing out mme and sms entries
cat extract.csv | while read -r LINE; do
if [[ $LINE == "mme "* ]]
then
printf "$LINE\n" >> mme_settings.csv
elif [[ $LINE == "sms "* ]]
then
printf "$LINE\n" >> sms_settings.csv
else
printf "$LINE\n" >> extract_clean.csv
fi
done
Mein Problem ist, dass dieses Ding am Ende eines Eintrags auf der folgenden Zeichenfolge seine Zehenstümpfe: 100%."
Wenn es mit der Linie getan, es elides einfach die %."
und die neue Online-Marker es folgende, und schmiert die beiden Linien zusammen:
... 100next.entry.keyname...
ich würde gerne in erreichen und einfach manuell begrenzen die %
Zeichen, aber es ist keine realistische Option für meinen Anwendungsfall. Offensichtlich vermisse ich etwas. Mein Verdacht ist, dass ich in irgendeiner Weise cat
oder read
in der ersten Zeile missbrauche.
Wenn es einen Ort geben sollte, hätte ich nach der Antwort suchen müssen, bevor Sie alle abgehört haben, zeigen Sie mich auf jeden Fall in diese Richtung, und ich werde mich beruhigen.
printf interpretiert% nach dem Expandieren der Variablen $ LINE. Verwenden Sie stattdessen "echo". (Glaube ich) – njzk2
njzk2 gewinnt die kewpie doll! Wann ist der richtige Zeitpunkt für die Verwendung von printf vs. echo? –
Verwenden Sie printf, wenn Sie eine Zeichenfolge formatieren müssen, d. H. Wenn Sie die prozentualen Formatierungsfunktionen verwenden müssen. in allen anderen Fällen benutze echo – njzk2