#1 Le 13/04/2023, à 16:52
- Akatu
[RÉSOLU] Retour arrière au début d'une ligne d'un fichier
Bonjour,
Imaginons qu'on a un fichier foo.txt qui contient ceci :
<item component="ComponentInfo{aaa/bbbbb}" drawable="ubuntu" />
<item component="ComponentInfo{cc/dddd}" drawable="kde
neon" />
<item component="ComponentInfo{fffff/ee}" drawable="arch" />
Sur la 2e ligne, le nom drawable "kdeneon" est sur 2 lignes, je voudrais que ça devienne ceci :
<item component="ComponentInfo{aaa/bbbbb}" drawable="ubuntu" />
<item component="ComponentInfo{cc/dddd}" drawable="kdeneon" />
<item component="ComponentInfo{fffff/ee}" drawable="arch" />
Le numéro de la ligne qui a un retour à la ligne est aléatoire. Je l'identifie actuellement via cette commande :
grep -vn '^<item component' foo.txt | head -n 1 | cut -d: -f1
Le nom du drawable posant problème est également aléatoire. Dans l'exemple c'est "kdeneon" mais demain, ça pourrait être "linuxmint".
Est-ce que vous voyez comment mettre le "neon" à la suite du "kde" ? Je suis parti sur le retour arrière mais un "suppr" depuis la ligne du dessus marche :-)
Le code sera dans une boucle donc inutile de rechercher d'autres occurrences ici.
Merci ! Merci !!
Dernière modification par Akatu (Le 14/04/2023, à 09:36)
KDE neon User Edition
LENOVO Ideapad L340-15IRH
Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 coeurs)
512 Go SSD - (M.2 2280) PCIe 3.0 x4 - NVM Express (NVMe)
Hors ligne
#2 Le 13/04/2023, à 17:12
- MicP
Re : [RÉSOLU] Retour arrière au début d'une ligne d'un fichier
Bonjour
mic@deb116:~$ cat foo.txt
<item component="ComponentInfo{aaa/bbbbb}" drawable="ubuntu" />
<item component="ComponentInfo{cc/dddd}" drawable="kde
neon" />
<item component="ComponentInfo{fffff/ee}" drawable="arch" />
mic@deb116:~$
Si il faut supprimer dans le fichier foo.txt
tous les retours à la ligne qui ne sont pas précédés du caractère >
alors, en utilisant sed :
mic@deb116:~$ sed ':a;N;$!ba;s/\([^>]\)\n/\1/g' foo.txt
<item component="ComponentInfo{aaa/bbbbb}" drawable="ubuntu" />
<item component="ComponentInfo{cc/dddd}" drawable="kdeneon" />
<item component="ComponentInfo{fffff/ee}" drawable="arch" />
mic@deb116:~$
Hors ligne
#3 Le 14/04/2023, à 09:43
- Akatu
Re : [RÉSOLU] Retour arrière au début d'une ligne d'un fichier
Bonjour MicP,
C'est parfait, merci beaucoup.
Je cherche maintenant à faire la même chose dans une liste de fichiers. Certains ont un retour à la ligne également. Si tu as une idée, je suis également preneur.
Exemple avec le fichier smiledirectclub :
~/Tmp ❯ ls
smarty.png 'smiledirect'$'\n''club.png' sms_messenger.png sms_organizer.png ZIP
~/Tmp ❯
EDIT : trouvé avec
rename 's/\n//;' *
Dernière modification par Akatu (Le 14/04/2023, à 09:47)
KDE neon User Edition
LENOVO Ideapad L340-15IRH
Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 coeurs)
512 Go SSD - (M.2 2280) PCIe 3.0 x4 - NVM Express (NVMe)
Hors ligne