Trouver la position de la première occurrence d’une sous-chaîne dans un fichier

J’ai un très gros fichier, composé d’une seule ligne (pas de CR du tout). J’ai plusieurs occurrences du même motif (disons ici, le motif est ABCDE ). Je veux retourner la position de départ ou la colonne de départ du premier caractère de la première occurrence de ce motif …

Par exemple, s’il s’agit des données du fichier:

 123456ABCDEF456987ABCDEFjhkhkhkhABCDEF 

Je veux retourner 7 comme colonne de départ de la première occurrence du motif …

merci communauté 🙂

Utilisez la fonction awk index() :

 awk -v pattern="ABCDE" '{print index($0,pattern)}' file 

Utilisez l’option “C” de “split”, il ne sera donc pas nécessaire de réparer les fichiers par la suite.

  -C, --line-bytes=SIZE put at most SIZE bytes of lines per output file