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

У меня есть файл 'a.txt', которые имеют содержание:

K8A2-19C204-BA109691  
ML_18.10.4-109691  

Как я могу искать строку, говорят "ML _" в файле и если это соответствует, изменяют последние 3 цифры той строки с некоторыми случайными числами с помощью 'sed' команду в сценарии удара.
Я могу изменить последние 3 числа на некоторые постоянные числа с командой:

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

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

0
задан 21 March 2018 в 18:54

1 ответ

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

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

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

0
ответ дан 30 October 2019 в 05:16

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

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