У меня есть файл «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
Но не знаю, как изменить случайные числа
если у вас нет каких-либо конкретных требований к случайности, то вы можете использовать оболочку bash, построенный в [Ф2], как упоминалось в комментариях, например,
[Ф1]если вы желаете "лучше" случайных чисел, то я бы предложил отказаться от [F3] в пользу [F4], а ищете подходящий модуль случайных чисел.
Если у вас нет особых требований к случайности, вы можете использовать встроенную оболочку bash в RANDOM, как указано в комментариях, например
$ sed '/^ML_/ s/[0-9]\{3\}$/'$(printf '%03d' $((RANDOM%1000)))'/' a.txt
K8A2-19C204-BA109691
ML_18.10.4-109133
Если вам требуется «лучшее» случайное числа, то я предлагаю отказаться от sed в пользу perl и искать подходящий модуль случайных чисел.
Если у вас нет особых требований к случайности, вы можете использовать встроенную оболочку bash в RANDOM, как указано в комментариях, например
$ sed '/^ML_/ s/[0-9]\{3\}$/'$(printf '%03d' $((RANDOM%1000)))'/' a.txt
K8A2-19C204-BA109691
ML_18.10.4-109133
Если вам требуется «лучшее» случайное числа, то я предлагаю отказаться от sed в пользу perl и искать подходящий модуль случайных чисел.