我正在使用此unix命令(在php文件中)删除某个字符串,然后删除该字符串留下的空白。不幸的是,在许多情况下,文件被完全删除。
有解决方法吗?
<?php
$dir = "./";
$rmcode = `find $dir -name "*.php"
-type f |xargs sed -i 'somestring' 2>&1`; echo "String removed.<br />\n";
$emptyline = `find $dir -name "*.php"
-type f | xargs sed -i '/./,$!d' 2>&1`; echo "Empty lines removed.<br
/>\n";
?>
这会有用吗?
$emptyline = `find $dir -name "*.php"
-type f | xargs sed -i '/./,$!d' 2>&1`; echo "Empty lines removed.<br
/>\n";
成为
$emptyline = `find $dir -name "*.php"
-type f | xargs sed -i '/\s/,$!d' 2>&1`; echo "Empty lines removed.<br
/>\n";
答案 0 :(得分:0)
尝试一次删除字符串AND空格:
<?php
$dir = "./";
$rmcode = `find $dir -name "*.php" -type f | xargs sed -i 's/somestring\s*//g' 2>&1`; echo "String removed.<br />\n";
?>
\s
匹配空格。
*
表示零次或多次。
更新了工作示例。
fseto@bass:~/src$ echo "test somestring is a test" > testfile
fseto@bass:~/src$ cat testfile
test somestring is a test
fseto@bass:~/src$ sed -i 's/somestring\s*//g' testfile
fseto@bass:~/src$ cat testfile
test is a test