Non è presente alcuna applet di lettura in arrivo con la casella occupata.
C'è un modo per leggere un file txt riga per riga usando busybox?
Quello che ho ora è
while read line
do
echo $line
done < "$InputFile"
Risposta accettata:
read
è una shell incorporata (non potrebbe impostare una variabile di shell se non lo fosse).
Quindi, se il tuo occupato sh
si basa su ash
, è:
while IFS= read -r line <&3; do
printf '%sn' "$line"
done 3< "$InputFile"
Come in qualsiasi shell POSIX. Ma come con qualsiasi shell, usando while read
i cicli per elaborare il testo sono generalmente una cattiva pratica di scripting della shell.
Sopra, hai bisogno di:
IFS=
altrimenti gli spazi e le tabulazioni senza escape iniziali e finali vengono rimossi dalle righe-r
, altrimenti le barre inverse vengono trattate come caratteri di escape e rimosse (a meno che non siano sfuggite)printf
, nonecho
che non funzionerebbe per righe che sono ad esempio-nene
"$line"
quotato (non$line
) altrimenti il contenuto della riga viene suddiviso in spazi e tabulazioni e i modelli di globbing vengono espansi.<&3
e3< ...
, se hai bisogno di accedere allo stdin originale all'interno del ciclo.
Se il file contiene caratteri dopo l'ultima riga e vuoi visualizzarli, puoi aggiungere dopo il ciclo:
[ -z "$line" ] || printf %s "$line"
Nota che quel ciclo non può gestire dati binari (il NUL
carattere).