Mon fichier texte est trié par ordre alphabétique. Je veux déterminer si chaque ligne est contenue dans la ligne suivante, et si oui, supprimer le premier des deux. Ainsi, par exemple, si je devais ...sed: comment déterminer si la ligne 1 est contenue dans la ligne 2
car
car and trailer
train
... Je veux finir avec ...
car and trailer
train
J'ai trouvé la page "sed one-liners" (s) , qui a le code pour rechercher des lignes en double:
sed '$! N; /^(.*)\n\1$/!P; D '
... et je pensais que la suppression de^ferait l'affaire, mais ce n'était pas le cas.
(Il serait également agréable de le faire avec des lignes non-consécutives, mais mes fichiers courir à des milliers de lignes, et il serait probablement prendre quelques heures de script, ou jours, à courir.)
Ignorer le cas serait un plus. – user1889034
Comme votre RE contient un signe '$' à la fin, cela signifie que * line1 correspond exactement à line2 * not * line1 est contenue dans line2 * –
Comme une suggestion connexe, pourquoi ne pas simplement écrire plusieurs lignes python pour terminer cette tâche ? – sleepsort