простенький скрипт sed

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
seamus
проходил мимо
Сообщения: 1
Зарегистрирован: 2010-11-06 21:20:44

простенький скрипт sed

Непрочитанное сообщение seamus » 2010-11-06 21:29:58

Помогите пожалуйста с редактором sed. Я с ним не знаком, но нюхом чую, что это то, что надо. Требуется написать скрипт, чтобы из файла типа:

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

and    [транскрипция]     перевод 
cold (n)    [транскрипция]     перевод
hang (hung, hung)     [транскрипция]    перевод 
do (did, done)	[du:, d?d, d?n]	перевод
получить следующее:

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

and    [транскрипция]     перевод    and
cold (n)    [транскрипция]     перевод     cold
hang (hung, hung)     [транскрипция]    перевод     hang
do (did, done)	[du:, d?d, d?n]	перевод     do
Разделителями между полями являются табы. Соль в том, чтобы всё, что до первого пробела, скопировать в конец строки, предварительно добавив [TAB]. Всё. Заранее благодарен!

Хостинговая компания 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/

BSD_daemon
ефрейтор
Сообщения: 63
Зарегистрирован: 2010-10-09 21:51:17
Откуда: Из тех ворот откуда весь народ

Re: простенький скрипт sed

Непрочитанное сообщение BSD_daemon » 2010-11-06 22:21:08

на awk не подойдет ?

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

cat your_file | awk '{ printf "%s\t%s\n", $0, $1; }'
I also known as: "Нефиг_чем_заняться"

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: простенький скрипт sed

Непрочитанное сообщение BlackCat » 2010-11-08 5:01:55

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

cat test.txt | sed 's/^\([^[:space:]]*\)\(.*\)/\1\2 \1/'
Разделителем между строкой и добавляемым словом будет пробел. Если вы хотите именно символ табуляции, то команду придётся записать в файл и между \1\2 и \1 вставить символ табуляции. Или использовать awk, как предлагал BSD_daemon, т.к. awk нормально переваривает конструкции вида \t.