Dans divers endroits du Web, j'ai trouvé:
\015
\012
\x0a - hex
\n
\r
tous comme synonymes de divers retours à la ligne / retours chariot ...
Mais dans ce petit script, je ne peux pas reconnaître quand je tombe sur une nouvelle ligne - quelqu'un peut-il me dire ce que je devrais vérifier dans la ligne if?
#!/bin/bash
test="this is a
test"
for a in "$test"; do
if [[ "$a" == '\012' ]] ; then
echo "FOUND NEWLINE"
fi
echo "$a"
done
wc -l
retournera 0; vous devriez ajouter cela comme une réponse
cat | while read line; do ...; done
, vous savez qu'il y a eu un retour chariot pour chaque itération. Si votre entrée peut être des fichiers\r
sans\n
, il suffit de transformer le fichiertr '\r' '\n'
lors du traitement de l'entrée. Si vous avez juste besoin de savoir s'il y a plusieurs lignes:wc -l
.