1Gyy7Gp #use 7 if you wish to paste the line at 8
3Gyy8Gp #use 8 if you wish to paste the line at 9
@Kusalananda Похоже, он использует расширенное регулярное выражение без опции -E в своей первой команде подстановки в
sed -e 's/X\s+([^\(]*)\(/X(\1,/g' -e 's/X(\([^,]*\),)/X(\1)/g' ./file
. Но вторая команда выглядит нормально. {{1 }} Сделав все в расширенном регулярном выражении, это будет работать
sed -Ee 's/X\s+([^\(]*)\(/X(\1,/g;s/X\(([^,]*),\)/X(\1)/g' ./file
Что-то вроде этого должно получиться, если вы запустите его на файле(ах) после выполнения первой замены, которая ввела ошибку:
sed 's/X(\([^,]*\),)/X(\1)/g'
Он заменит X(<что-то-не-запятая>,)
на X(<что-то-не-запятая>)
.
Чтобы выполнить обе замены за один раз:
sed -e 'the first substitution' -e 'the second substitution'