Ich bin neu in Bash Scripting Ich habe folgende CSVBash: Parse CSV und bearbeiten Zellenwerte
Eingang
ID Location Way Day DayTime NightTime StandNo
1 abc Up mon 6.00 18.00 6
Erwartete Ausgabe
ID Location Way Day DayTime NightTime StandNo
1 ABC UP Mon 6.00 18.00 6
Ich brauche Lage zu überprüfen und Way und konvertieren sie in UpperCase - ABC, UP Der Tag muss mon - Mon Ich muss dies für die gesamte CSV tun. Ich brauche den Wert zu korrigieren und alle Felder in CSV schreiben oder die aktuelle Zelle bearbeiten und speichern CSV Mein Skript ist als
file = "Myfile.csv"
while IFS="," read line
do
output=`echo $line | cut -d "," -f2`
echo $output
for i in $output
do
if [ -z $(echo $I | sed -e "s/[a-z]//g") ]
then
echo $I | tr "[:lower:]" "[:upper:]" >> ".tempfile.CSV"
fi
done
done <$file
`1 folgt. Derzeit schreibt dies nur den korrigierten Wert und nicht die gesamte Zeile zusammen mit dem korrigierten Wert. [Unsicher, wie ich Zellenwerte in jeder Zeile durchgehen kann, korrigiere die, die korrigiert werden müssen, und kopiere dann die gesamte Zeile]
Jede Hilfe wäre nützlich.
Bitte [formatieren Sie den Code und Beispiel Eingabe/Ausgabe richtig] (http://meta.stackexchange.com/a/22189/248777). – mklement0
Lernen Sie http://shellcheck.net ** zu verwenden, bevor Sie Ihren Code hier posten ;-). Wenn Sie Shellcheck verwenden, müssen Sie eine richtige "She-Bang" -Zeile als erste Zeile einfügen, normalerweise '#!/Bin/bash'. Viel Glück. – shellter