0
votes

Comment supprimer des mots avec exactement 2 caractères à l'aide de la commande sed

Je résolvez un travail de coque qui consiste à décrypter un code. J'ai traité le texte et suis arrivé à la fois lorsque je séparais les mots de chaque ligne différente, c'est-à-dire un mot par ligne. J'ai des indices que 3 mots de caractère représentent des lettres et 2 caractères représentent des symboles. Je veux mettre les 3 mots de caractère dans une variable, puis remplacer ces mots avec des lettres dans la commande de fréquence (en commençant par "E", etc.). Mon souhait est d'exclure les mots de deux caractères et de garder uniquement des mots de 3 caractères.

J'ai essayé SED de beaucoup de manières en modifiant le code, P>

apb
aph
api
api
app
app
app
app
app
app


3 commentaires

Si vous avez un mot par ligne, sans blanchiment, essayez sed '/^..$/ d'


Vous devez indenter le code avec 4 espaces ou mettre des backtstic triple sur les lignes avant et après.


Je ne me souviens pas d'où j'ai appris à ce sujet, mais Voici une bonne introduction .


4 Réponses :


1
votes

Pourriez-vous s'il vous plaît essayer de suivre. Si vous allez bien avec awk code> solution.

awk '/^...$/' Input_file
or
awk '!/^..$/' Input_file


4 commentaires

Ou plus court, awk '/^...$/' INPUT_FILE (bien que techniquement cela ne supprime pas les lignes de 2 caractères)


@ Davidc.Rankin, merci d'avoir ajouté ceci en commentaires, je les ai ajoutés dans mon poteau aussi, acclamations.


Longueur ($ 0) == 2 {NEXT} 1 est identique à la longueur ! = 2 .


Comment supprimer des mots avec exactement 2 caractères à l'aide de la commande sed . Ce awk '/^...$/' Ne conservera que trois chartes, donc techniquement erronés comparer à la demande. Cela ne tiendra que 3 caractères et supprimera tous les autres.



2
votes

Voici quelques façons, en supposant que le fichier d'entrée s'appelle 23.txt :

  1. grep -v '^ $' 23.txt montre des lignes qui ne sont pas 2 caractères "

  2. grep '^ ... $' 23.txt montre uniquement des lignes qui sont 3 caractères longs.

  3. sed -n '/^..$/!P' 23.txt imprime des lignes qui ne sont pas 2 caractères longs.

  4. sed '/^..$/d' 23.txt Supprime des lignes qui ne sont pas 2 caractères longes de la sortie.


0 commentaires

0
votes

Un autre awk xxx


0 commentaires

0
votes

Lorsque vous n'avez que des lignes avec 2 ou 3 caractères, sélectionnez les lignes avec au moins 3 caractères: xxx


0 commentaires