Je travaille sur des fichiers texte (copiés et collés d'un groupe Facebook) J'ai dépouillé toutes les chaînes "comme" "commentaire" numéros de commentaire, etc. avec le groupe de commandes SED. Je suis laissé avec des lignes qui ressemblent à ceci: Je cherche un regexp pour ode ici. p> . J'ai regardé sed code> ou un autre utilitaire UNIX qui supprimerait le nom de la ligne (S ) sans autre texte qui suit, laissant les lignes ressemblant à ceci: p>
uniq code> et plusieurs exemples de regrett dans
gvim code> mais je ne pouvais pas voir un moyen d'atteindre mon objectif. Les noms peuvent être composés de 3 mots. P> p>
3 Réponses :
Ceci pourrait fonctionner pour vous (GNU SED):
sed -E 'N;/^(.*)\n\1./!P;D' file
Je n'ai jamais su que des références au dos étaient disponibles pour être utilisées dans le cadre de la regex elle-même.
dans Vim, vous pouvez effectuer ce que vous pouvez effectuer ce qui suit: qui recherche une ligne, suivi de \ n code> et la même ligne (plus quelque chose après quoi que ce soit. n'est pas spécifié) et le remplace avec le motif trouvé, supprimant la première partie. p> p>
Si vos données dans d code> fichier, essayé sur GNU SED:
sed -E '/^\w+\s\w+\s*$/{N;s/([^\n]+)\n(\1.+)/\2/;b};d' d
Je ne sais pas que je comprends complètement, mais si vous imprimez uniquement le numéro de ligne impairs, vous pouvez utiliser: awk 'nr% 2 == 1 {imprimer $ 0}' $ FileName b> espère que cela aide.
Bonjour, j'essaie d'enlever la ligne contenant le nom duplicate, mais pas d'autre texte. S'il vous plaît voir mon édition à la question pour une version plus précise du fichier travaillant sur. Merci pour votre suggestion, j'ai essayé avec le texte ci-dessus et il est retourné Jane Doe John Doe
Modifier Votre question à afficher la sortie que vous attendez compte tenu de l'entrée que vous avez fournie, pas d'une autre sortie d'une autre entrée que vous n'avez pas. t fourni. Clarifiez également si les noms sont TOUJOURS B> 2 mots ou peuvent être multiples comme
Arthur Conan Doyle Code>.
Fait @ed Morton
Ensuite, comment pouvez-vous dire quel est un nom de 3 mots à partir d'un nom de 2 mots suivi de 1 mot de "texte supplémentaire"? Pourquoi n'est-ce pas
donec ac urna ut quam sagittis placerat ID Vitae Justo. Code> inclus dans la sortie? S'il était précédé d'une ligne qui était
Donec AC URNA UT Quam Sagittis Placerat ID Vitae CODE> TOP Votre réponse acceptée < / a> l'imprimerait - est-ce vraiment votre comportement souhaité?
La première incidence du nom n'est jamais suivie d'autre chose. Si la deuxième incidence du nom est suivie de quelque chose, je souhaite le garder. Le problème que j'ai est la duplication du nom sur une ligne suivie de l'espace vide au-dessus de la ligne avec le nom et toutes les informations suivantes. La réponse fournie a fait exactement ce que je voulais, supprimé la ligne, y compris le nom qui ne quitte que la deuxième ligne et tout texte ultérieur. S'il vous plaît, aidez-moi à comprendre où vous pensez comment j'aurais pu mieux poser la question pour la référence future.