在SED linux中查找并替换值

时间:2016-11-17 12:07:23

标签: linux shell sed

我有一个名为form.php的文件:

<?php
sleep(10);
?>

目的是使用sed:

执行这样的shell脚本
$sh example.sh form.php 50

获取:

<?php
sleep(50);
?>

我试过这个

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

但不行......

2 个答案:

答案 0 :(得分:1)

您可以使用:

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

或者这个:

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

sed默认情况下使用BRE,( or )使用字面值而不是特殊的正则表达式元字符。

答案 1 :(得分:0)

#! /bin/csh -f
setenv A_word AP
setenv B_word KC
rm -rf output/*
cp -rf input/* output/
echo ${A_word}
echo ${B_word}
sed 's/${A_word}/${B_word}/g' output/*

我有上面的代码,但是没有用,如果我将sed 's/${A_word}/${B_word}/g' output/*替换为
 sed 's/AP/KC/g' output/*它有效,帮帮我