cut: |: Nenhum arquivo ou diretório

-1
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

Estou recebendo o seguinte erro:

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
    
por mahidhar 24.09.2015 / 11:37

2 respostas

4

cut entende o argumento $line como um nome de arquivo. Se o seu shell é bash, você pode usar a palavra <<< here:

cut -d' ' -f1 <<< "$line"

Mas, não há necessidade de chamar comandos externos, o bash pode fazer isso com a substituição de parâmetros:

date=${line%|*}  # Delete from | to the right.
hour=${line#*|}  # Delete up to |.
    
por 24.09.2015 / 11:42
1

no mac os x terminal

test="$(echo '116' | cut -d '\' -f3-)" 
echo "year:$test"
prints year from test with an echo string
year:2016  
or
echo "year:"$(echo '116' | cut -d '\' -f3-)""
prints year from test with an echo string
year:2016

tente isso (semelhante ao acima)

calendar_date="$(cut -d '\' -f1 $line)"
hr_of_day="$(cut -d '\' -f2 $line)"
echo "date: $calendar_date hr: $hr_of_day"

para leitura lê isso funciona com echo

while read x
do
    echo $x | cut -c3,7    #echo $x | cut -c3,7 (for range of letters)
done
    
por 22.05.2016 / 19:50

Tags