[shell]
Résolu
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
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
-
Contributeurhello
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 -
oui si shuf retourne c, je veux recuperer
0
0
1
0
0 -
Contributeurune 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 $