while read line
do
echo $line
calendar_date=$(cut -d\ -f1 $line)
hr_of_day=$(cut -d\ -f2 $line)
echo "date: $calendar_date hr: $hr_of_day"
done < $FILE
Estoy teniendo el siguiente error:
date: hr:
2011-06-30 | 23
cut: 2011-06-30: No such file or directory
cut: |: No such file or directory
cut: 23: No such file or directory
cut
la entrada manual? ¿Has intentado entender el significado del mensaje de error? Que has intentadohr_of_day=$(echo "$line" | cut -d\ -f2)
si no tiene comillas en su texto entrante.Respuestas:
cut
entiende el$line
argumento como un nombre de archivo. Si su shell es bash, puede usar la<<<
palabra aquí:Pero, no hay necesidad de llamar a comandos externos, bash puede hacerlo con la sustitución de parámetros:
fuente
en Mac OS X Terminal
intente esto (similar al anterior)
para las lecturas de entrada esto funciona con echo
fuente