Как использовать sed для изменения последней 3-х цифр строки со случайным числом, когда строка соответствует файлу

У меня есть файл «a.txt», у которого есть контент:

K8A2-19C204-BA109691 ML_18.10.4-109691

Как я могу найти строку в файле, например «ML_», и если она соответствует изменению последней 3-значной цифры эта строка с некоторыми случайными числами, используя команду «sed» в сценарии bash. Я могу изменить последние 3 числа на некоторые фиксированные числа с помощью команды:

sed -i '/ML_/s/[0-9][0-9][0-9]$/012/' file_name

Но не знаю, как изменить случайные числа

0
задан 22 March 2018 в 05:54

3 ответа

если у вас нет каких-либо конкретных требований к случайности, то вы можете использовать оболочку bash, построенный в [Ф2], как упоминалось в комментариях, например,

[Ф1]

если вы желаете "лучше" случайных чисел, то я бы предложил отказаться от [F3] в пользу [F4], а ищете подходящий модуль случайных чисел.

0
ответ дан 8 June 2018 в 15:22

Если у вас нет особых требований к случайности, вы можете использовать встроенную оболочку bash в RANDOM, как указано в комментариях, например

$ sed '/^ML_/ s/[0-9]\{3\}$/'$(printf '%03d' $((RANDOM%1000)))'/' a.txt K8A2-19C204-BA109691 ML_18.10.4-109133

Если вам требуется «лучшее» случайное числа, то я предлагаю отказаться от sed в пользу perl и искать подходящий модуль случайных чисел.

0
ответ дан 17 July 2018 в 18:23

Если у вас нет особых требований к случайности, вы можете использовать встроенную оболочку bash в RANDOM, как указано в комментариях, например

$ sed '/^ML_/ s/[0-9]\{3\}$/'$(printf '%03d' $((RANDOM%1000)))'/' a.txt K8A2-19C204-BA109691 ML_18.10.4-109133

Если вам требуется «лучшее» случайное числа, то я предлагаю отказаться от sed в пользу perl и искать подходящий модуль случайных чисел.

0
ответ дан 23 July 2018 в 19:10

Другие вопросы по тегам:

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