Supprimer des lignes avec awk ou sed
RésoluDans un script shell avec awk ou sed (le plus simple) je veux supprimer de la 2ème ligne d'un fichier jusqu'à la ligne qui précède la ligne où est écrit le mot « SOCIETE »
Il y a environ 1500 lignes à supprimer
Merci pour votre aide
1 réponse
La discussion porte sur la suppression d'un bloc de lignes avec sed ou awk, visant à retirer la portion allant de la deuxième ligne jusqu'à la ligne précédant celle contenant le mot SOCIETE. Plusieurs réponses évoquent des solutions avec sed en chaîne, comme filtrer des lignes spécifiques ou produire un fichier final, mais les résultats dépendent du contexte (Linux, Windows, Cygwin, ou Tcl/Expect). Des essais et des limites apparaissent, certains scripts et environnements provoquant des messages d'erreur ou incompatibilités, et le cas concret de suppression de la ligne 'Press any key to continue' est discuté. D'autres échanges soulignent d'adapter la solution selon l'outil utilisé (sed sur Windows via Cygwin ou via WSL, ou sed natif) et selon le flux d'exécution.
-
ContributeurSalut,
En supposant que ta version de sed accepte l'option "-i" :
sed -i.bak '2,/SOCIETE/{/SOCIETE/b;d}' fichier
-
-
Salut les gars je suis ravi d'être tombé sur ce tuto en ce moment où j'ai vraiment besoin d'aide.
le tuto marche très bien mais mon problème est le suivant je voudrais garder une partie de texte qui se trouve entre deux je peux dire au milieu du texte principal.
j'ai exploité le code principale et celui-ci marche en deux volet pour avoir le résultat désiré voici en fait ce que je fais:
sed -i.bak '1,/AVU/{/AVU/b,d} test
sed -i.bak '14,/AVU/{/AVU/b,d} test
en comment exécuter ce code si l'on veut découper le texte en plusieurs parties insérées dans un grand texte?par exemple si j'ai un texte comme celui ci:
1 Device Name : ARMP
2 Device Location : Yaounde
3 ATPC Status : Enabled
4 Optimal Uplink RSSI (dBm) : -74
5 Operator ID : 186.190.0
6 Cell ID : 5.6
7 Duplex Mode : TDD
8 DL-UL Ratio (%) : 60-40
9 Chain Number : 1
10 External 1PPS Clock : Enable
11 External 16MHz Clock : Disable
et que je veux récupérer les lignes 3, 5 et 9 par exemple afin d'obtenir comme résultat:
3 ATPC Status : Enabled
5 Operator ID : 186.190.0
9 Chain Number : 1
voilà ma principale préoccupation merci d'avance -
-
excuser moi et si les lignes ne sont pas numérotées comme ceci
Device Name : ARMP
Device Location : Yaounde ATPC Status : Enabled
Optimal Uplink RSSI (dBm) : -74
Operator ID : 186.190.0
Cell ID : 5.6
Duplex Mode : TDD
DL-UL Ratio (%) : 60-40
Chain Number : 1
External 1PPS Clock : Enable
External 16MHz Clock : Disable
et que je veux récupérer les lignes 3, 5 et 9 par exemple afin d'obtenir comme résultat:
ATPC Status : Enabled
Operator ID : 186.190.0
Chain Number : 1
est ce que votre solution marche toujours ? -
-