Подскажите как инкрементить в SED(да да знаю авк проще, но задача стоит именно в SED) Есть файл, с которого вытягиваются столбцы, (если точнее то 5 столбцов) в последнем( в 5) нужно увеличить число на 1. каким макаром это можно сделать?! битый час сижу.
>>1882053 (OP)В самом sed никак. С помощью sed+bash можно вот так:>echo "aaa bbb 12 ccc" | sed -r 's/([^0-9])([0-9]+)(.)/echo "\1$((\2+1))\3"/e'
>>1882265Сраная макаба сожрала звездочки.
>>1882268Большое спасибо!
>>1882638>>1882268то есть можно запихать в замену sed /s/[0-9]:[0-9]/$VARIABLE/g ? вопрос только кака задать в её параметры скажем, каждого числа (числа могут быть разные) и задать им (декремент например)
>>1882639Не понял вопроса. Весь трюк базируется на backreferences (не помню, как это по-русски правильно будет, обратные ссылки вроде) расширенных регулярных выражений и встроенной в bash считалке.Backreferences позволяют запоминать найденные совпадения и ссылаться на них в дальнейшем, например:>echo "aaa bbb ccc" | sed -r 's/([a-z]+) ([a-z]+) ([a-z]+)/\3 \2 \1/g'>ccc bbb aaaФлаг e для команды s работает вроде только в GNU'том sed позволяет, вместо вывода получившейся строки в stdout, выполнить ее как команду оболочки:>echo "show /home" | sed -r 's/show/ls -ls/e'>20 drwxr-xr-x 78 user user 20480 Nov 8 19:33 userBASH умеет в арифметику:>echo "Three plus four equals $((3+4))">Three plus four equals 7