У меня есть приблизительно 100 операторов печати в файле как это:
printf("%f \n\n",row1.req_pnttime);
Я хочу скопировать имя переменной в строке так, чтобы это стало как это
printf("row1.req_pnttime: %f \n\n",row1.req_pnttime);
Кто-либо может помочь мне сделать это?
PS - длина имени переменной отличается для каждого оператора печати, таким образом, мне нужен универсальный способ сделать это.
sed 's/\(.*("\)\(.*,\)\(.*\))/\1\3: \2\3)/' /path/to/input.txt >/path/to/output.txt
sed 's/find/replace/'
. т.е. найдите выражение и замените его. \(
... \)
это группы фиксации. Таким образом, что-либо, что соответствует промежуточный их, "получают" в переменной и можно вспомнить в части замены, с \1
, \2
, \3
, и т.д. \(.*("\)\(.*,\)\(.*\))
. .*("
. Получение с начала к чему-либо, что заканчивается ("
.*,
. От № 1, получение [до 1 111]. .*
. Получение до (но не включая) )
. \1\3: \2\3)
.