Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix > AIX
AIX Forum d'entraide sur le système AIX. Avant de poster -> FAQ AIX et cours AIX
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2007, 09h15   #1
Expert Confirmé
 
Avatar de Katyucha
 
Inscription : mars 2004
Messages : 3 109
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Allemagne

Informations forums :
Inscription : mars 2004
Messages : 3 109
Points : 3 313
Points : 3 313
Par défaut [AIX] écriture des fichiers textes sous windows et lecture sous unix

Bonjour,

Je dispose un répertoire A sous Unix partagé sous Windows via Samba

L'application sous Windows génère un fichier de plusieurs de centaines de lignes au format texte windows (soit une fin de ligne CRLF)
De l'autre coté, j'ai une application sous unix qui récupère le fichier texte et le lit

Sauf que pour Unix, seul LF est interprété comme fin de ligne, donc je me retrouve avec les fameux caractères ^M

Je cherche comment faire en ce sorte que ces fins de ligne se mettent automatiquement en LF lors du transfert sur le partage réseau ...

PS : je n'ai pas le choix de cette architecture, imposée par le projet
__________________
Ancien Rédacteur Linux && Unix / Nouveau retraité de DVP
The UNIX way of sex:
gunzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

Je ne réponds ni aux messages privées, ni aux messages plein de fautes...
Katyucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 15h09   #2
Invité de passage
 
Inscription : août 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 1
Points : 1
Points : 1
J'ai eu le même problème pour supprimer les contrôles M. J'ai fait une grouille de script utilisant awk et tr (entre autre) qui me repère les fichiers contenant des ^M (\r code hexa \x0D) et qui me les liste. il suffit par la suite de les passer un à un dans un autre scripts qui les supprime et de mettre tout ça dans un cron

repérer les fichier contenant des ^M :

trouve.ksh :
read REP?"Entrez la racine de recherche :"
for file in $(find $REP -type f 2>/dev/null)
do
awk '/\r/ {print}' "$file" > /tmp/toto 2>/dev/null
if [ test $(cat /tmp/toto | wc -l) -gt 0 ] then
echo "$file"
fi
done

transformer le retour chariot en rien, deux solutions :

- a la main quand il y a peu de fichier :

vi fic
:%s/.$//g

- dans une moulinette :

remplace.ksh :
trouve.ksh > to_replace &&
cat to_replace |
while read file
do
mv $file /tmp/$file.orig
cat /tmp/$file.orig | tr -d "\r" > $file
done

que l'on peut mettre dans un cron.
Il est également possible de voir les retours chariots en faisant :

cat <fichier> | od -bc

Un grep peut aussi arranger les choses dans ce cas pour les repérer.

Mise dans un cron toutes les minutes par exemple :

*/1 * * * * remplace.ksh 2>&1 > /dev/null

Aux ajustations syntaxique près ça devrait fonctionner

http://www.developpez.net/forums/ima...s/icon_bug.gif
madsaya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 13h54   #3
Membre du Club
 
Inscription : février 2005
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 68
Points : 45
Points : 45
tu fait un sed sur tes fichiers :
s/^M//g, on fait comme cela chez nous.
mollux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h04.


 
 
 
 
Partenaires

Hébergement Web