[Ответить в тред] Ответить в тред

15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!
30/09/16 - BREAKING NEWS ШОК АБУ ПРОДАЛСЯ МЭЙЛУ (на самом деле нет)


Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 5 | 1 | 2
Назад Вниз Каталог Обновить

Подскажите как инкрементить в SED(да да знаю авк Аноним (Ubuntu Linux: Firefox based) 07/11/16 Пнд 17:30:10  1882053  
14755590926020.jpg (613Кб, 1260x800)
Подскажите как инкрементить в SED(да да знаю авк проще, но задача стоит именно в SED) Есть файл, с которого вытягиваются столбцы, (если точнее то 5 столбцов) в последнем( в 5) нужно увеличить число на 1. каким макаром это можно сделать?!

битый час сижу.
Аноним (Linux: Firefox based) 07/11/16 Пнд 21:24:18  1882265
>>1882053 (OP)
В самом sed никак. С помощью sed+bash можно вот так:
>echo "aaa bbb 12 ccc" | sed -r 's/([^0-9])([0-9]+)(.)/echo "\1$((\2+1))\3"/e'
Аноним (Linux: Firefox based) 07/11/16 Пнд 21:26:36  1882268
>>1882265
Сраная макаба сожрала звездочки.
Аноним (Ubuntu Linux: Firefox based) 08/11/16 Втр 13:43:02  1882638
>>1882268
Большое спасибо!
Аноним (Ubuntu Linux: Firefox based) 08/11/16 Втр 13:47:27  1882639
>>1882638
>>1882268
то есть можно запихать в замену sed /s/[0-9]:[0-9]/$VARIABLE/g ?
вопрос только кака задать в её параметры скажем, каждого числа (числа могут быть разные) и задать им (декремент например)
Аноним (Linux: Firefox based) 08/11/16 Втр 17:31:09  1882783
>>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 user

BASH умеет в арифметику:
>echo "Three plus four equals $((3+4))"
>Three plus four equals 7


[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 5 | 1 | 2
Назад Вверх Каталог Обновить

Топ тредов
Избранное