Mon bash-foo est un peu rouillé en ce moment, donc je voulais voir s'il y avait une façon intelligente de supprimer les doublons partiels d'un fichier. J'ai un tas de fichiers contenant des milliers de lignes avec le format suivant:Supprimer les doublons partiels du fichier texte
String1|String2|String3|String4|String5|String6|...|String22|09-Apr-2016 05:28:03|x
Essentiellement, il est un tas de tuyaux chaînes délimitées, avec les deux dernières colonnes étant un horodatage et x. Ce que je voudrais faire est de concaténer tous mes fichiers, puis supprimer tous les doublons partiels. Je définis le doublon partiel comme une ligne dans le fichier qui correspond de String1 à String22, mais l'horodatage peut être différent.
Par exemple, un fichier contenant:
String1|String2|String3|String4|String5|String6|...|String22|09-Apr-2016 05:28:03|x
String1|String2|String3|String4|String5|String6|...|String22|09-Apr-2016 12:12:12|x
String124|String2|String3|String4|String5|String6|...|String22|09-Apr-2016 05:28:03|x
deviendrait:
String1|String2|String3|String4|String5|String6|...|String22|09-Apr-2016 05:28:03|x
String124|String2|String3|String4|String5|String6|...|String22|09-Apr-2016 05:28:03|x
(Peu importe qui horodatage est choisi).
Des idées?
Remplacer «assez efficacement» par «très inefficace» - cela aurait un ordre de grandeur plus lent qu'un script awk équivalent pour un fichier raisonnablement grand. Voir [pourquoi-utilise-un-shell-loop-to-process-text-consider-mal-pratique] (http://unix.stackexchange.com/questions/169716/why-is-using-a-shell -loop-to-process-text-considered-bad-pratique). –