У меня есть скрипт 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
1743634608
Anonymous
У меня есть скрипт 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
Подробнее здесь: [url]https://stackoverflow.com/questions/79549378/how-do-i-fix-sed-commands-becoming-extremely-slow-when-load-is-high[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия