The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Comportement étrange de script dans le crontab PilotGoose De programmation et de script Shell 1 06-26-2008 10:54 AM
Aide bizarre avec mon script! kdyzsa De programmation et de script Shell 1 06-15-2008 11:39 PM
Weird sudo comportement geomonap UNIX for Advanced & Expert Users 1 02-03-2006 05:08 PM
aucune explication pour ce comportement de script shell xiamin De programmation et de script Shell 9 11-09-2001 01:13 PM
Weird script Duckman UNIX pour les nuls Questions et réponses 2 03-14-2001 01:53 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 08-30-2008
Peetrus Peetrus is offline
Registered User
  
 

Date d'inscription: août 2008
Messages: 2
Weird sed comportement script

J'ai écrit un petit script pour remplacer certains mots dans tous les fichiers dans un répertoire.


Code:
#!/bin/sh

#Get list of files to be edited

file_list=`ls -p`

for i in $file_list
do
echo "Processing $i"

alteredi=`echo "$i" | sed -e 's/\//d/'`

if [ $i = $alteredi ]
then
	if [ $i != "maketest" ]
	then
	#actual altering
	
	cat $i | sed -e "s/login\//login.tst\//" > $i
	cat $i | sed -e "s/cyberkd\//cyberkd.tst\//" > $i
	cat $i | sed -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" > $i
	echo "  $i has been altered"
	else
	echo "  Not altering myself"
	fi

else
echo "  Not altering directories"
fi

done

Maintenant, quand je lancer ce script comme un utilisateur normal, seul le premier 4kb du fichier est traité. Donc tous les fichiers de plus de 4kb sont réduits de moitié. Les octets restants sont juste à gauche du nouveau fichier. Lorsque j'ai couru le script en tant que root, 8ko ont été traitées. Existe-t-il un moyen de traiter l'ensemble des fichiers?

Quand je chat un grand fichier texte l'ensemble du fichier est imprimé sur mon écran.

Merci d'avance.
  #2 (permalink)  
Old 08-30-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4346
Ne pas lire et écrire dans le même dossier et de chat avec sed est redondant, le remplacement de ces lignes:


Code:
cat $i | sed -e "s/login\//login.tst\//" > $i
cat $i | sed -e "s/cyberkd\//cyberkd.tst\//" > $i
cat $i | sed -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" > $i

avec:


Code:
sed -e "s/login\//login.tst\//" -e "s/cyberkd\//cyberkd.tst\//" -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" "$1" > temp.file
mv temp.file "$1"

Si vous êtes sed version supporte le flag-i, vous pouvez éditer le fichier en place sans l'aide d'un fichier temporaire.


Code:
sed -i -e "s/login\//login.tst\//" -e "s/cyberkd\//cyberkd.tst\//" -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" "$1"

Observe

Dernière édition par Franklin52; au 08.30.2008 08:52 AM..
  #3 (permalink)  
Old 08-30-2008
Peetrus Peetrus is offline
Registered User
  
 

Date d'inscription: août 2008
Messages: 2
Merci. It works!
Closed Thread

Bookmarks

Tags
chat, sed, shell

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 07:47 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0