Je dois ajouter un espace après le # à chaque occurrence, seulement si le # est au début de la ligne et après le # il y a au moins un caractère qui n'est pas l'espace. Par exemple, ce code :
echo "# ok" | sed "s|^#[^ ]|# |g"
Renvoie # ok
comme prévu, mais ce code :
echo "#ok" | sed "s|^#[^ ]|# |g"
Renvoie # k
et non # ok
comme prévu.
Comment obtenir la sortie # ok
?
Éditer :
Voici le code qui résout mon problème, grâce à @FedonKadifeli :
echo -e "#ok\n# ok\n #ok\n#ok #ok\n##ok #ok"
Renvoie :
#ok
# ok
#ok
#ok #ok
##ok #ok
Ce code :
echo -e "#ok\n# ok\n #ok\n#ok #ok\n##ok #ok" | sed -r 's|^#(#*)([^[:space:]#])|#\1 \2|g'
Renvoie :
# ok
# ok
#ok
# ok #ok
## ok #ok