The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Vreemd gedrag van script in crontab PilotGoose Programmeren en Shell Scripting 1 06-26-2008 10:54
Helpen met mijn script raar! kdyzsa Programmeren en Shell Scripting 1 06-15-2008 11:39 PM
Weird sudo gedrag geomonap UNIX for Advanced & Expert Gebruikers 1 02-03-2006 05:08 PM
een verklaring voor deze shell script gedrag xiamin Programmeren en Shell Scripting 9 11-09-2001 01:13 PM
Weird script Duckman UNIX voor Dummies Questions & Answers 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 08-30-2008
Peetrus Peetrus is offline
Geregistreerde gebruiker
  
 

Join Date: Aug 2008
Posten: 2
Weird sed gedrag in script

Ik heb een klein script ter vervanging van bepaalde woorden in alle bestanden in een directory.


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

Nu, als ik dit script als een normale gebruiker, alleen de eerste 4Kb van het bestand is verwerkt. Dus alle bestanden die groter zijn dan 4Kb zijn gehalveerd. De resterende bytes zijn weggelaten uit het nieuwe bestand. Toen ik liep het script als root, 8KB waren verwerkt. Is er een manier om de hele bestanden?

Toen ik kat een groot tekstbestand het hele bestand wordt afgedrukt op mijn scherm.

Thanks in advance.
  #2 (permalink)  
Old 08-30-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.334
Niet lezen en schrijven naar hetzelfde bestand en het gebruik van katten met sed is overbodig, vervang deze lijnen:


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

met:


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"

Als u sed versie ondersteunt de-i vlag kunt u het bestand in plaats zonder gebruik van een tijdelijk bestand.


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

Groeten

Laatst gewijzigd door Franklin52; op 08.30.2008 08:52..
  #3 (permalink)  
Old 08-30-2008
Peetrus Peetrus is offline
Geregistreerde gebruiker
  
 

Join Date: Aug 2008
Posten: 2
Bedankt. Het werkt!
Closed Thread

Bladwijzers

Labels
kat, sed, shell

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 03:26.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0