Je rencontre des problèmes assez inhabituels en utilisant grep dans un script bash. Voici un exemple du code de script bash que j'utilise que présente le comportement:Problèmes avec la commande Grep dans le script bash
UNIQ_SCAN_INIT_POINT=1
cat "$FILE_BASENAME_LIST" | uniq -d >> $UNIQ_LIST
sed '/^$/d' $UNIQ_LIST >> $UNIQ_LIST_FINAL
UNIQ_LINE_COUNT=`wc -l $UNIQ_LIST_FINAL | cut -d \ -f 1`
while [ -n "`cat $UNIQ_LIST_FINAL | sed "$UNIQ_SCAN_INIT_POINT"'q;d'`" ]; do
CURRENT_LINE=`cat $UNIQ_LIST_FINAL | sed "$UNIQ_SCAN_INIT_POINT"'q;d'`
CURRENT_DUPECHK_FILE=$FILE_DUPEMATCH-$CURRENT_LINE
grep $CURRENT_LINE $FILE_LOCTN_LIST >> $CURRENT_DUPECHK_FILE
MATCH=`grep -c $CURRENT_LINE $FILE_BASENAME_LIST`
CMD_ECHO="$CURRENT_LINE matched $MATCH times," cmd_line_echo
echo "$CURRENT_DUPECHK_FILE" >> $FILE_DUPEMATCH_FILELIST
let UNIQ_SCAN_INIT_POINT=UNIQ_SCAN_INIT_POINT+1
done
À de nombreuses occasions, quand grep pour la ligne courante dans la liste de l'emplacement du fichier, il a mis aucune sortie au courant fichier dupechk même s'il y a certainement eu des correspondances avec la ligne courante dans la liste des emplacements de fichiers (j'ai exécuté la commande dans le terminal sans problème). J'ai fouillé autour de l'Internet pour voir si quelqu'un d'autre a eu un comportement similaire, et jusqu'ici tout ce que j'ai trouvé, c'est que ça a quelque chose à voir avec les sorties tamponnées et non tamponnées des autres commandes opérant avant la commande grep dans le Bash script ....
Cependant personne ne semble avoir trouvé une solution, donc en gros je vous demande si vous avez déjà rencontré cela, et toute idée/conseils/solutions à ce problème ...
Cordialement
Paul
Qu'essayez-vous précisément de faire? Nous pourrions peut-être proposer un meilleur moyen de s'y prendre. –
J'ai un script bash très long qui doit effectuer l'opération de localisation de fichiers dupliqués dans un répertoire donné. Cette partie du script recherche les doublons et les imprime dans un fichier. Il est intéressant de noter que je fais cela pour un cours universitaire et que la commande awk n'est pas autorisée. – paultop6
La commande awk n'est pas autorisée mais sed/grep l'est? lol – ghostdog74