[shell]

Résolu
ness1950 Messages postés 3 Statut Membre -  
ness1950 Messages postés 3 Statut Membre -
bonjour,
j'ai un fichier .txt dans lequel je veux tirer aleatoirement des lignes (sans [redondance de preference) et pouvoir recuperer le numero des lignes tirees.

au final je voudrai avoir en sortie un txt avec pour chaque ligne 0/1 (tiré/non tiré) + txt avec les lignes tirées

pour le moment j utilise line=$(shuf -n 1 $file_train) echo {$line} pour le txt avec les lignes.

je ne vois pas comment recuperer les numeros de lignes?
merci

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    si le fichier contient
    a
    b
    c
    d
    e
    et que shuf retourne c tu veux ?
    1 1
    1 2
    0 3 c
    1 4
    1 5
    0
  2. ness1950 Messages postés 3 Statut Membre
     
    oui si shuf retourne c, je veux recuperer
    0
    0
    1
    0
    0
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    une solution avec awk, ne fonctionne que pour shuf -n 1 :
    $ cat fichier
    a
    b
    c
    d
    e
    $ awk -v v="$(shuf -n 1 fichier)" '{n=1} $0 ~ v {n=0} {print n}' fichier
    1
    1
    1
    0
    1
    $ 
    
    0
    1. ness1950 Messages postés 3 Statut Membre
       
      ca marche!
      merci
      0