在“之前”使用未知数量的字符重命名SED

时间:2011-10-15 12:25:53

标签: sed

我有一个file1,里面有一些PHP代码。我需要找到以下内容:action="blahblah"并将其替换为action="error.php"。问题是,我不知道原文中的引号之间有多少个字符。

以下是我的不起作用:

sed 's:action="^[^"]*":action="error.php":' <file1> file2

我该怎么做?

1 个答案:

答案 0 :(得分:2)

为什么在字符类之前有^行首标记?尝试使用:

sed 's:action="[^"]*":action="error.php":' <file1 > file2

这是一个成绩单,显示您的版本以及该更正:

pax$ echo 'blah action="something" blah' | sed '
...$    s:action="^[^"]*":action="error.php":'
blah action="something" blah

pax$ echo 'blah action="something" blah' | sed '
...$    s:action="[^"]*":action="error.php":'
blah action="error.php" blah