Bonjour à tous,

J'essaie de faire un truc tout bête (en tout moins que moi apparemment) en ksh en parcourant les lignes d'un fichier et de supprimer chaque occurence du fichier lu présente dans un autre fichier, au final je veux que l'autre fichier soit purgé des données du fichier lu.

Mettons que j'ai un fichier A.csv qui contient :
111
222
333
444
555

et que dans liste_a_suppr.txt j'ai :
333
555

Je voudrais au final me retrouver avec un fichier A.csv qui contient :
111
222
444

Mais je n'y arrive pas avec le code suivant.
Le fichier A.csv reste inchangé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/ksh
 
while read -r line
do
 
		sed '/$line/d' ./A.csv > tmp
		mv tmp A.csv 
 
		let "cpt_appli = $cpt_appli + 1"
		echo $cpt_appli
 
done < ./liste_a_suppr.txt
Est-ce que vous pourriez m'aider svp ?

Merci d'avance.


Bon j'ai trouvé ....
en remplacer par des doubles quotes.
sed "/$line/d" ./A.csv > tmp