sed удалить ТАБ в конце строки

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

sed удалить ТАБ в конце строки

Непрочитанное сообщение schizoid » 2009-06-02 14:34:05

# cat -vet 1111

Код: Выделить всё

    __Server_Canon LBP-810/USER1/Сеанс 12   ^I   $
    HP LaserJet 2100 Series PS/USER1/Сеанс 12^I        $
    Canon LBP-810/SERVER/Сеанс 28^I        $
    __SERVER_Canon LBP-810/BOOK/Сеанс 7^I      $
    Samsung SCX-4x16 Series/MSPAVEL/Сеанс 3   ^I$
    __Server_Canon LBP-810/USER1/Сеанс 32^I$
    __Server_Canon LBP-810/USER1/Сеанс 29^I$
    __Server_Canon LBP-810/USER1/Сеанс 25^I$
    __Server_Canon LBP-810/USER1/Сеанс 10^I$
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 31^I$
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 29^I$
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 24^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 9^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 4^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 33^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 28^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 24^I$
    HP LaserJet 2100 Series PS/USER1/Сеанс 25^I$
    HP LaserJet 2100 Series PS/USER1/Сеанс 10^I$
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 31^I$
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 29^I$
    Canon LBP-810/SERVER/Сеанс 34^I$
    Canon LBP-810/SERVER/Сеанс 24^I$
    Canon LBP-810/SERVER/Сеанс 10^I$
    Canon LBP-810/SERVER/Сеанс 31^I$
    Canon LBP-810/SERVER/Сеанс 26^I$
    Canon LBP-810/SERVER/Сеанс 32^I$
    Canon LBP-810/SERVER/Сеанс 2$
# cat 1111| sed 's/[ \t]*$//'> 2222; cat -vet 2222

Код: Выделить всё

   __Server_Canon LBP-810/USER1/Сеанс 12   ^I$
    HP LaserJet 2100 Series PS/USER1/Сеанс 12^I$
    Canon LBP-810/SERVER/Сеанс 28^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 7^I$
    Samsung SCX-4x16 Series/MSPAVEL/Сеанс 3   ^I$
    __Server_Canon LBP-810/USER1/Сеанс 32^I$
    __Server_Canon LBP-810/USER1/Сеанс 29^I$
    __Server_Canon LBP-810/USER1/Сеанс 25^I$
    __Server_Canon LBP-810/USER1/Сеанс 10^I$
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 31^I$
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 29^I$
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 24^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 9^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 4^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 33^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 28^I$
    __SERVER_Canon LBP-810/BOOK/Сеанс 24^I$
    HP LaserJet 2100 Series PS/USER1/Сеанс 25^I$
    HP LaserJet 2100 Series PS/USER1/Сеанс 10^I$
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 31^I$
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 29^I$
    Canon LBP-810/SERVER/Сеанс 34^I$
    Canon LBP-810/SERVER/Сеанс 24^I$
    Canon LBP-810/SERVER/Сеанс 10^I$
    Canon LBP-810/SERVER/Сеанс 31^I$
    Canon LBP-810/SERVER/Сеанс 26^I$
    Canon LBP-810/SERVER/Сеанс 32^I$
    Canon LBP-810/SERVER/Сеанс 2$
как видно пробелы удаляет, а ТАБ нет, какова?
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение zg » 2009-06-02 14:46:36

schizoid писал(а):как видно пробелы удаляет, а ТАБ нет, какова?
да собственно такова -)))

Код: Выделить всё

zg# cat -t 1.txt
asdsad^I123213^Iasdasd
asdasd^Iasdasd^Iasdasd^I^I
zg# cat 1.txt
asdsad  123213  asdasd
asdasd  asdasd  asdasd
zg# cat 1.txt | sed -E 's/[[:space:]]+$/./g'
asdsad  123213  asdasd
asdasd  asdasd  asdasd.
zg#

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение schizoid » 2009-06-02 14:51:46

с этим разобрался .снкс
а не подскажете еще вот что.
пишу скрипт под винду, и вот какая бодяга:

Код: Выделить всё

D:\Scripts\delete_printers>reg3 query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices"

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
    __Server_Canon LBP-810/USER1/Сеанс 12       REG_SZ  winspool,TS031
    HP LaserJet 2100 Series PS/USER1/Сеанс 12   REG_SZ  winspool,TS030
    Canon LBP-810/SERVER/Сеанс 28       REG_SZ  winspool,TS028
    __SERVER_Canon LBP-810/BOOK/Сеанс 7 REG_SZ  winspool,TS132
    Samsung SCX-4x16 Series/MSPAVEL/Сеанс 3     REG_SZ  winspool,TS023
    __Server_Canon LBP-810/USER1/Сеанс 32       REG_SZ  winspool,TS080
    __Server_Canon LBP-810/USER1/Сеанс 29       REG_SZ  winspool,TS143
    __Server_Canon LBP-810/USER1/Сеанс 25       REG_SZ  winspool,TS134
    __Server_Canon LBP-810/USER1/Сеанс 10       REG_SZ  winspool,TS064
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 29        REG_SZ  winspool,TS136
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 24        REG_SZ  winspool,TS133
    __SERVER_Canon LBP-810/BOOK/Сеанс 9 REG_SZ  winspool,TS077
    __SERVER_Canon LBP-810/BOOK/Сеанс 4 REG_SZ  winspool,TS002
    __SERVER_Canon LBP-810/BOOK/Сеанс 33        REG_SZ  winspool,TS001
    __SERVER_Canon LBP-810/BOOK/Сеанс 28        REG_SZ  winspool,TS132
    __SERVER_Canon LBP-810/BOOK/Сеанс 24        REG_SZ  winspool,TS146
    Samsung ML-3050 Series PS   REG_SZ  winspool,Ne00:
    HP LaserJet 2100 Series PS/USER1/Сеанс 25   REG_SZ  winspool,TS133
    HP LaserJet 2100 Series PS/USER1/Сеанс 10   REG_SZ  winspool,TS031
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 29    REG_SZ  winspool,TS135
    Fax REG_SZ  winspool,Ne01:
    Canon LBP-810/SERVER/Сеанс 34       REG_SZ  winspool,TS018
    Canon LBP-810/SERVER/Сеанс 24       REG_SZ  winspool,TS137
    Canon LBP-810/SERVER/Сеанс 10       REG_SZ  winspool,TS064
    \\MAG2\HP LaserJet M1005    REG_SZ  winspool,Ne02:
    \\mspriemnaya\HP LaserJet M1120 MFP REG_SZ  winspool,Ne03:
    \\Secretar\Samsung  REG_SZ  winspool,Ne04:
    Canon LBP-810/SERVER/Сеанс 31       REG_SZ  winspool,TS066
    Canon LBP-810/SERVER/Сеанс 26       REG_SZ  winspool,TS064
    Canon LBP-810/SERVER/Сеанс 2        REG_SZ  winspool,TS066
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 31    REG_SZ  winspool,TS064
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 31        REG_SZ  winspool,TS065
    Canon LBP-810/SERVER/Сеанс 32       REG_SZ  winspool,TS135
но когда пропускаю через grep и sed, то вот:

Код: Выделить всё

D:\Scripts\delete_printers>reg3 query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices"| grep TS| sed s/REG.*//g| sed "s/^[ \t]*//;s/[ \       ]*$//"| sed -n p
__Server_Canon LBP-810/USER1/?хрэё 12
HP LaserJet 2100 Series PS/USER1/?хрэё 12
Canon LBP-810/SERVER/?хрэё 28
__SERVER_Canon LBP-810/BOOK/?хрэё 7
Samsung SCX-4x16 Series/MSPAVEL/?хрэё 3
__Server_Canon LBP-810/USER1/?хрэё 32
__Server_Canon LBP-810/USER1/?хрэё 29
__Server_Canon LBP-810/USER1/?хрэё 25
__Server_Canon LBP-810/USER1/?хрэё 10
__SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 29
__SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 24
__SERVER_Canon LBP-810/BOOK/?хрэё 9
__SERVER_Canon LBP-810/BOOK/?хрэё 4
__SERVER_Canon LBP-810/BOOK/?хрэё 33
__SERVER_Canon LBP-810/BOOK/?хрэё 28
__SERVER_Canon LBP-810/BOOK/?хрэё 24
HP LaserJet 2100 Series PS/USER1/?хрэё 25
HP LaserJet 2100 Series PS/USER1/?хрэё 10
HP LaserJet 2100 Series PS/EVGENYMEDVED/?хрэё 29
Canon LBP-810/SERVER/?хрэё 34
Canon LBP-810/SERVER/?хрэё 24
Canon LBP-810/SERVER/?хрэё 10
Canon LBP-810/SERVER/?хрэё 31
Canon LBP-810/SERVER/?хрэё 26
Canon LBP-810/SERVER/?хрэё 2
HP LaserJet 2100 Series PS/EVGENYMEDVED/?хрэё 31
__SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 31
Canon LBP-810/SERVER/?хрэё 32
sed и grep взят из GNU utilities for Win32 (UnxUtils.zip)
ядерный взрыв...смертельно красиво...жаль, что не вечно...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение zg » 2009-06-02 15:01:34

schizoid писал(а):sed s/REG.*//g
REG.* — надо в кавычки взять.

schizoid писал(а):sed "s/^[ \t]*//;s/[ \       ]*$//"
эта обработка бессмысленна
schizoid писал(а):sed -n p
а это зачем?
schizoid писал(а):и вот какая бодяга
всмысле буковки корявые?

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение schizoid » 2009-06-02 15:16:12

zg писал(а):
schizoid писал(а):sed s/REG.*//g
REG.* — надо в кавычки взять.
ок
zg писал(а):
schizoid писал(а):sed "s/^[ \t]*//;s/[ \       ]*$//"
эта обработка бессмысленна
этой обработкой удаляю пробелы и таб в начале и в конце строки
zg писал(а):
schizoid писал(а):sed -n p
а это зачем?
убрал
zg писал(а):
schizoid писал(а):и вот какая бодяга
всмысле буковки корявые?
имеено буковки
ядерный взрыв...смертельно красиво...жаль, что не вечно...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение zg » 2009-06-02 18:05:52

schizoid писал(а):имеено буковки
сед криво портирован

Код: Выделить всё

C:\Documents and Settings\zg>echo привет | sed "s/п/П/g"
привет

C:\Documents and Settings\zg>echo привет | sed "s/./П/g"
????????

C:\Documents and Settings\zg>
впрочем греп тоже не отличается правильной работой с русскими буквами

Код: Выделить всё

C:\Documents and Settings\zg>echo привет | grep привет

C:\Documents and Settings\zg>
лучше юзай встроенные средства винды

Код: Выделить всё

C:\Documents and Settings\zg>echo привет | find "при"
привет

C:\Documents and Settings\zg>

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение schizoid » 2009-06-02 20:30:56

прикол в том, что штатными средствами винды не вырулю похоже...

если она даже так херит:

D:\Scripts\delete_printers>reg3 query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices"

Код: Выделить всё

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
    __Server_Canon LBP-810/USER1/Сеанс 31       REG_SZ  winspool,TS002
    HP LaserJet 2100 Series PS/USER1/Сеанс 31   REG_SZ  winspool,TS001
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 31        REG_SZ  winspool,TS138
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 31    REG_SZ  winspool,TS137
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 26        REG_SZ  winspool,TS133
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 26    REG_SZ  winspool,TS066
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 16        REG_SZ  winspool,TS065
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 16    REG_SZ  winspool,TS064
    __SERVER_Canon LBP-810/BOOK/Сеанс 26        REG_SZ  winspool,TS064
    Canon LBP-810/SERVER/Сеанс 32       REG_SZ  winspool,TS135
    Canon LBP-810/SERVER/Сеанс 2        REG_SZ  winspool,TS066
    Canon LBP-810/SERVER/Сеанс 26       REG_SZ  winspool,TS064
    Canon LBP-810/SERVER/Сеанс 31       REG_SZ  winspool,TS066
    __Server_Canon LBP-810/USER1/Сеанс 12       REG_SZ  winspool,TS031
    HP LaserJet 2100 Series PS/USER1/Сеанс 12   REG_SZ  winspool,TS030
    Canon LBP-810/SERVER/Сеанс 28       REG_SZ  winspool,TS028
    __SERVER_Canon LBP-810/BOOK/Сеанс 7 REG_SZ  winspool,TS132
    __Server_Canon LBP-810/USER1/Сеанс 32       REG_SZ  winspool,TS080
    __Server_Canon LBP-810/USER1/Сеанс 29       REG_SZ  winspool,TS143
    __Server_Canon LBP-810/USER1/Сеанс 25       REG_SZ  winspool,TS134
    __Server_Canon LBP-810/USER1/Сеанс 10       REG_SZ  winspool,TS064
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 29        REG_SZ  winspool,TS136
    __SERVER_Canon LBP-810/EVGENYMEDVED/Сеанс 24        REG_SZ  winspool,TS133
    __SERVER_Canon LBP-810/BOOK/Сеанс 9 REG_SZ  winspool,TS077
    __SERVER_Canon LBP-810/BOOK/Сеанс 4 REG_SZ  winspool,TS002
    __SERVER_Canon LBP-810/BOOK/Сеанс 33        REG_SZ  winspool,TS001
    __SERVER_Canon LBP-810/BOOK/Сеанс 28        REG_SZ  winspool,TS132
    __SERVER_Canon LBP-810/BOOK/Сеанс 24        REG_SZ  winspool,TS146
    Samsung ML-3050 Series PS   REG_SZ  winspool,Ne00:
    HP LaserJet 2100 Series PS/USER1/Сеанс 25   REG_SZ  winspool,TS133
    HP LaserJet 2100 Series PS/USER1/Сеанс 10   REG_SZ  winspool,TS031
    HP LaserJet 2100 Series PS/EVGENYMEDVED/Сеанс 29    REG_SZ  winspool,TS135
    Fax REG_SZ  winspool,Ne01:
    Canon LBP-810/SERVER/Сеанс 34       REG_SZ  winspool,TS018
    Canon LBP-810/SERVER/Сеанс 24       REG_SZ  winspool,TS137
    Canon LBP-810/SERVER/Сеанс 10       REG_SZ  winspool,TS064
    \\MAG2\HP LaserJet M1005    REG_SZ  winspool,Ne02:
    \\mspriemnaya\HP LaserJet M1120 MFP REG_SZ  winspool,Ne03:
    \\Secretar\Samsung  REG_SZ  winspool,Ne04:
D:\Scripts\delete_printers>reg3 query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices" > 1234

D:\Scripts\delete_printers>more 1234

Код: Выделить всё

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
    __Server_Canon LBP-810/USER1/?хрэё 31       REG_SZ  winspool,TS002
    HP LaserJet 2100 Series PS/USER1/?хрэё 31   REG_SZ  winspool,TS001
    __SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 31        REG_SZ  winspool,TS138
    HP LaserJet 2100 Series PS/EVGENYMEDVED/?хрэё 31    REG_SZ  winspool,TS137
    __SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 26        REG_SZ  winspool,TS133
    HP LaserJet 2100 Series PS/EVGENYMEDVED/?хрэё 26    REG_SZ  winspool,TS066
    __SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 16        REG_SZ  winspool,TS065
    HP LaserJet 2100 Series PS/EVGENYMEDVED/?хрэё 16    REG_SZ  winspool,TS064
    __SERVER_Canon LBP-810/BOOK/?хрэё 26        REG_SZ  winspool,TS064
    Canon LBP-810/SERVER/?хрэё 32       REG_SZ  winspool,TS135
    Canon LBP-810/SERVER/?хрэё 2        REG_SZ  winspool,TS066
    Canon LBP-810/SERVER/?хрэё 26       REG_SZ  winspool,TS064
    Canon LBP-810/SERVER/?хрэё 31       REG_SZ  winspool,TS066
    __Server_Canon LBP-810/USER1/?хрэё 12       REG_SZ  winspool,TS031
    HP LaserJet 2100 Series PS/USER1/?хрэё 12   REG_SZ  winspool,TS030
    Canon LBP-810/SERVER/?хрэё 28       REG_SZ  winspool,TS028
    __SERVER_Canon LBP-810/BOOK/?хрэё 7 REG_SZ  winspool,TS132
    __Server_Canon LBP-810/USER1/?хрэё 32       REG_SZ  winspool,TS080
    __Server_Canon LBP-810/USER1/?хрэё 29       REG_SZ  winspool,TS143
    __Server_Canon LBP-810/USER1/?хрэё 25       REG_SZ  winspool,TS134
    __Server_Canon LBP-810/USER1/?хрэё 10       REG_SZ  winspool,TS064
    __SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 29        REG_SZ  winspool,TS136
    __SERVER_Canon LBP-810/EVGENYMEDVED/?хрэё 24        REG_SZ  winspool,TS133
    __SERVER_Canon LBP-810/BOOK/?хрэё 9 REG_SZ  winspool,TS077
    __SERVER_Canon LBP-810/BOOK/?хрэё 4 REG_SZ  winspool,TS002
    __SERVER_Canon LBP-810/BOOK/?хрэё 33        REG_SZ  winspool,TS001
    __SERVER_Canon LBP-810/BOOK/?хрэё 28        REG_SZ  winspool,TS132
    __SERVER_Canon LBP-810/BOOK/?хрэё 24        REG_SZ  winspool,TS146
    Samsung ML-3050 Series PS   REG_SZ  winspool,Ne00:
    HP LaserJet 2100 Series PS/USER1/?хрэё 25   REG_SZ  winspool,TS133
    HP LaserJet 2100 Series PS/USER1/?хрэё 10   REG_SZ  winspool,TS031
    HP LaserJet 2100 Series PS/EVGENYMEDVED/?хрэё 29    REG_SZ  winspool,TS135
    Fax REG_SZ  winspool,Ne01:
    Canon LBP-810/SERVER/?хрэё 34       REG_SZ  winspool,TS018
    Canon LBP-810/SERVER/?хрэё 24       REG_SZ  winspool,TS137
    Canon LBP-810/SERVER/?хрэё 10       REG_SZ  winspool,TS064
    \\MAG2\HP LaserJet M1005    REG_SZ  winspool,Ne02:
    \\mspriemnaya\HP LaserJet M1120 MFP REG_SZ  winspool,Ne03:
    \\Secretar\Samsung  REG_SZ  winspool,Ne04:
а ммне нужно получить имя принтеров, что б потом найти имя ветки реестра, что б потом ее удалить...
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Гость
проходил мимо

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение Гость » 2009-06-04 23:03:35

а попробовать sed из shell'а под cygwin? даже если с кодировкой будут проблемы, то можно выкрутится с помощью iconv/recode.
ну а cygwin можно с собой таскать на флешке
zg писал(а):

Код: Выделить всё

| sed -E 's/[[:space:]]+$/./g'
такая конструкция вполне может скушать ^M (Carriage Return) в конце строки
schizoid писал(а):штатными средствами винды не вырулю похоже...
смотря какую версию венды использовать

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение zg » 2009-06-05 5:50:10

Гость писал(а):такая конструкция вполне может скушать ^M (Carriage Return) в конце строки
конкретно в седе не может, поскольку обработка идёт построчно.
Гость писал(а):то можно выкрутится с помощью iconv/recode.
смотря каким образом локаль организована в cygwin, можно попробовать.

Гость
проходил мимо

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение Гость » 2009-06-05 9:20:15

zg писал(а):конкретно в седе не может, поскольку обработка идёт построчно.
зависит от того как определяет строки sed в венде. Если криво портирован, то будет разделять по NL как в Unix'е, иначе по CR+NL.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение zg » 2009-06-05 9:59:14

Гость писал(а):зависит от того как определяет строки sed в венде
вопрос конечно интересный

Код: Выделить всё

C:\Documents and Settings\zg>echo 1 | sed s/./1/g
111

C:\Documents and Settings\zg>
Гость писал(а):Если криво портирован, то будет разделять по NL как в Unix'е, иначе по CR+NL.
не волнуйся, ключика -E под виндой нету :smile:

Код: Выделить всё

C:\Documents and Settings\zg>echo hello | sed -E 's/[[:space:]]/'_/g
sed: invalid option -- E
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...

  -n, --quiet, --silent
                 suppress automatic printing of pattern space
  -e script, --expression=script
                 add the script to the commands to be executed
  -f script-file, --file=script-file
                 add the contents of script-file to the commands to be executed
      --help     display this help and exit
  --text     switch to text mode
  -V, --version  output version information and exit

If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret.  All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.

E-mail bug reports to: bug-gnu-utils@gnu.org .
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: sed удалить ТАБ в конце строки

Непрочитанное сообщение zg » 2009-06-05 10:06:05

Гость писал(а):то будет разделять по NL как в Unix'е
походу так и есть

Код: Выделить всё

C:\Documents and Settings\zg>echo 1| sed "s/./_&/g"
_1_

C:\Documents and Settings\zg>