Я использовал regex в sed раньше и использовал немного awk, но не уверен, какой именно синтаксис мне нужен здесь ...
Я хочу сделать что-то вроде:
sed -i 's/restartfreq\([\s]\)*\([0-9]\)*/restartfreq\1$((\2/2))/2/g' \
my_file.conf
, где второе совпадение делится на 2, а затем помещается обратно во встроенное редактирование.
Я читал, что sed не может сделать математику.
Можно ли сделать это чистос sed или awk один?Предложения, пожалуйста.
Редактировать 1
Я думал, что смысл моего запроса достаточно прост, но я думаю, что, возможно, я не дал достаточно хороший образец данных, которые я хочу изменить,Вот и пример строки в моем * .conf-файле, который я хочу редактировать inline:
restartfreq 1250 ;# 2500steps = every 1.25 ps
Я разместил решение ниже.Оба ответа, которые я получил, касались печати текста на терминале, а не редактирования файла в строке.Я стараюсь не отвечать на свой вопрос, но в этом случае ни один из полученных ответов действительно не выполнил то, что я просил (отредактировать файл, а не просто распечатать отредактированную строку), и они были значительно длиннее моего решения и / или требовали дополнительного linuxпрограммы, кроме просто awk или sed.
Я ценю помощь и обратную связь, хотя!:)
ПРИМЕЧАНИЕ. Как и мой обычный отказ от ответственности, это не домашнее задание, я - инженер-химик.