Regex Bash pour un seul caractère ASCII sur une ligne vide

J’ai besoin d’une expression régulière pour correspondre à une ligne où nous avons seulement 1 caractère ASCII non imprimable, donc:

[[$ ligne = ~ REGEX]]

S’il vous plaît aider. Le code ASCII pour le caractère est (0x0A) et je sais qu’il devrait être quelque chose comme: ^(0x0A)$ mais je ne peux pas le faire fonctionner.

MODIFIER

Mon code est:

 while IFS= read -r line; do [[ $line =~ REGEX ]] && printf "SUCCESS" done < file 

EDIT – c’est le fichier, il y a plus de code mais je le découpe

entrez la description de l’image ici

fichier: https://ufile.io/88965

Votre boucle while while read lit votre fichier jusqu’à ce qu’il trouve un caractère de nouvelle ligne, puis affecte ce qu’il a lu jusqu’ici à la line , en supprimant la nouvelle ligne.

Vous devriez donc être capable de détecter des lignes vides comme ceci:

 while IFS= read -r line; do [[ -z $line ]] && printf "SUCCESS\n" done < file 

Si vous voulez vraiment utiliser une expression régulière, vous pouvez utiliser ^$ , comme suggéré par d'autres dans les commentaires.

Si votre objective est de produire une sorte de sortie lorsqu'une ligne correspond à un modèle, vous devez utiliser un outil conçu à cet effet, tel que awk:

 awk '/^$/ { print "SUCCESS" }' file 

Comme il semble que vous ayez des problèmes avec les nouvelles lignes de style Windows, vous pouvez les convertir en style UNIX en utilisant dos2unix ou un autre outil pour supprimer les retours chariot.