У меня есть скрипт Bash, который принимает простой файл свойств и заменяет значения в другой файл. (Файл свойства - это просто строки свойств «foo = bar» типа) < /p>
INPUT=`cat $INPUT_FILE`
while read line; do
PROP_NAME=`echo $line | cut -f1 -d'='`
PROP_VALUE=`echo $line | cut -f2- -d'=' | sed 's/\$/\\\$/g`
time INPUT="$(echo "$INPUT" | sed "s\`${PROP_NAME}\b\`${PROP_VALUE}\`g")"
done
низкая нагрузка: < /p>
real 0m0.011s
user 0m0.002s
sys 0m0.004s
Обычно теряя 0,1 секунды - это не огромная сделка, но как файл свойств, так и входные файлы - сотни/тысячи строк длиной, и эти 0,1 секунды составляют более часа потраченного времени.
Что я могу сделать, чтобы исправить это? Нужно ли мне больше процессоров?$foo=bar
$hello=world
^hello=goodbye
< /code>
Пример ввода < /p>
This is a story about $hello. It starts at a $foo and ends in a park.
Bob said to Sally "^hello, see you soon"
< /code>
ожидаемый результат < /p>
This is a story about world. It starts at a bar and ends in a park.
Bob said to Sally "goodbye, see you soon"
< /code>
Редактировать: Я должен был ясно дал понять, что рекурсивная замена в исходном коде является предполагаемым поведением. Извините за это.
Итак, если предварительный файл содержит < /p>
$key1=foo_$key2
$key2=bar
< /code>
Затем для входного файла, содержащего < /p>
$key1
< /code>
Вывод < /p>
foo_bar
Подробнее здесь: https://stackoverflow.com/questions/795 ... ad-is-high
Как исправить команды SED становиться чрезвычайно медленными, когда нагрузка высокая? ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как исправить команды SED становиться чрезвычайно медленными, когда нагрузка высокая?
Anonymous » » в форуме Linux - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Запуск любой команды Intelephense приводит к чрезвычайно длинной ошибке узла
Anonymous » » в форуме Php - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Запуск любой команды Intelephense приводит к чрезвычайно длинной ошибке узла
Anonymous » » в форуме Php - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-