Bonjour,
je cherche à faire une modification d'un fichier texte, via un script bash.
j'ai un certain nombre de fichiers avec plusieurs lignes et je cherche à remplacer \n par un espace sur toutes les lignes qui se terminent par "(un caractère)\n" mais pas par "]\n"
Sur notepad++ j'utilise le regex "([^\]])\n" remplacé par "$1 ", pas de souci ça marche bien, mais sur ma debian impossible de le transposer, le résultat est inversé, ou est mon erreur ?
(Sauf erreur de ma part :label1;N;$!blabel1; permet d'avoir 2 lignes en même temps sauf si c'est la dernière donc d'avoir les \n, a priori cette partie marche)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #!/bin/bash # For all row in all text file in current dir, (try to) replace \n by space when previous character is not ] for f in *.txt; do sed -i -E ':label1;N;$!blabel1;s/([^\]])\n/\1 /g' "$f" done
Partager