2016-11-17 13 views
1

ich habe eine Datei namens form.php:Suchen und Ersetzen Wert in SED Linux

<?php 
sleep(10); 
?> 

Der Zweck ist ein Shell-Skript wie folgt mit sed auszuführen:

$sh example.sh form.php 50 

Für erhalten:

<?php 
sleep(50); 
?> 

ich habe versucht, diese

$cat example.sh 
#!/bin/sh 
file=$1 
sed -i "s/^\(*sleep\)\([^>]*\)</\1$2</" "$1" 

aber nicht funktionieren ...

+1

"nicht funktionieren ..." sagt uns sehr wenig. Welche Fehlermeldungen erhalten Sie? – Takarii

Antwort

1

können Sie verwenden:

sed "s/sleep([^)]*)/sleep($2)/" "$file" 

oder diese:

sed "s/\(sleep\)([^)]*)/\1($2)/" "$file" 

sed Verwendung BRE von Ausfall- und (or) nehmen als wörtliche nicht als Sonder regex Meta-Zeichen.

+1

großartig, es ist Arbeit! Danke Anubhava –

Verwandte Themen