Unix команда для удаления пробелов в первых строках - PullRequest
0 голосов
/ 19 сентября 2010

Я использую эту команду 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";

1 Ответ

0 голосов
/ 19 сентября 2010

попробуйте удалить строку И все пробелы сразу:

<?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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...