PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nur das letzte Zeichen ersetzen



ulzf
04-11-2004, 13:17
Hallo zusammen...
Ich habe ein Skript um Dateien umzubenennen (nur die Endung) geschrieben.
bsp. index.php soll in index.cgi (das ist einfach gemacht).
aber bei ext.php_config.php --> ext.php_config.cgi habe ich keine Lösung gefunden.
gibt es bei sed irgendeine Option um nur das letzte vorkommende Suchmuster zu erstzen..
ich weiß es gib die Möglichkeiten

sed 's/find/replace/' für das erste gefundene muster
und 's/find/replace/g' für alle vorkommenden Muster
und 's/find/replace/5' für das fünfte...

das Problem: ich weiß nicht wann das suchmuster .php zum letzten mal vorkommt.

danke im voraus...

Blackhawk
04-11-2004, 14:11
$ ist das Zeilenende

grep dumbo$ findet:
du bist ein dumbo

aber nicht:
Ein dumbo bist du nicht

roli
04-11-2004, 14:36
Ist zwar nicht sed aber ich würde das in etwa so lösen:



for file in $(ls *.php);
do
mv ${file} ${file%.*}.cgi
done

Joghurt
04-11-2004, 16:03
sed -e 's/php$/cgi/'

Wenn du perl installiert hast, ist es aber einfach, perl stellt das Shell-skript rename zur verfügung

rename "s/php$/cgi/" *php