У меня есть html-файл с несколькими URL-адресами. Я хочу динамически изменять номер версии в URL-адресе через сценарий оболочки

«Лучшим» способом, который «лучше» в том, что он выполняется rmреже, было бы использованиеxargs:

{
    for pm in "${pri[@]}"; do
        printf '/primary/abc_monthly_%s_log.data\n' "$pm"
    done

    for sm in "${snd[@]}"; do
        printf '/secondary/abc_monthly_%s_log.data\n' "$sm"
    done
} | xargs rm

Это будет использовать циклы только как средство для создания путей. Эти пути затем передаются в xargs rm, который будет выполнять rmна как можно большем количестве из них одновременно. С примерами массивов, которые вы предоставили, он, вероятно, просто запуститrmодин раз .

То, как я написал это выше, предполагает, что ни один из компонентов пути не содержит буквальных символов новой строки или пробелов (, чего они не делают в этом примере ).

0
17.04.2020, 23:08
1 ответ

Команда sed -

sed -i 's~${my_str_join}~${my_str_new_join}~g' index1.html

использует одинарные -кавычки, которые предотвращают подстановку. Используйте двойные кавычки -там, где вы хотите заменить, например,

sed -i 's~${my_str_join}~'"${my_str_new_join}"'~g' index1.html
0
19.03.2021, 02:28

Теги

Похожие вопросы