GNU/Linux >> Tutoriels Linux >  >> Linux

Comment combiner toutes les lignes qui se terminent par un caractère barre oblique inverse ?

À l'aide d'un outil de ligne de commande courant comme sed ou awk, est-il possible de joindre toutes les lignes qui se terminent par un caractère donné, comme une barre oblique inverse ?

Par exemple, étant donné le fichier :

foo bar bash baz
dude happy

Je voudrais obtenir cette sortie :

foo bar bash baz
dude happy

Réponse acceptée :

une solution sed plus courte et plus simple :

sed  '
: again
/\$/ {
    N
    s/\n//
    t again
}
' textfile

ou une ligne si vous utilisez GNU sed :

sed ':x; /\$/ { N; s/\n//; tx }' textfile

Linux
  1. Comment supprimer toutes les lignes commentées ou les lignes avec un motif spécifique dans vim ?

  2. Comment atteindre la portabilité avec Sed -i (édition sur place) ?

  3. Comment générer un fichier et ignorer les lignes commençant par "?" ?

  4. Comment remplacer les guillemets simples par un autre caractère dans sed ?

  5. Comment supprimer le caractère \r avec sed

Comment remplacer toutes les chaînes dans un fichier commençant par un préfixe ?

Comment supprimer toutes les lignes d'un fichier dans Vim

Comment construire un module de noyau Linux pour qu'il soit compatible avec toutes les versions du noyau ?

comment faire une recherche vim recherche inverse pour toutes les lignes sans texte

Comment remplacer récursivement les caractères par sed ?

Comment lister tous les utilisateurs avec root ?