Реклама на сайте Advertise with us

Sed

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 16/01/14 в 01:49       Ответить с цитатойцитата 

Есть некий дамп:
word1|some_text_KEY_some_text_KEY_some_text_KEY_some...
word2|some_text_KEY_some_text_KEY_some_text_KEY_some...
word3|some_text_KEY_some_text_KEY_some_text_KEY_some...

wordN|some_text_KEY_some_text_KEY_some_text_KEY_some...

Надо в каждой отдельной строке заменить все 3 её KEY на то слово word1,word2,..wordN, что стоит в начале этой строки! word(n-e) отделяетя символом |, их можно только идентифицировать только как jn началf строки до '|'.

Должно получиться:
word1|some_text_word1_some_text_word1_some_text_word1_some...
word2|some_text_word2_some_text_word2_some_text_word2_some...
...

ПС Еслиб дамп был в пределах 10к, то я бы попробовал справиться обычным редактором, например ST2, но дамп, скажем так, крупнее на порядок! ;)

1
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 16/01/14 в 02:18       Ответить с цитатойцитата 

emeditor хоть в гиг дамп откроет. Там же реплейс можно на регулярке построить.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

7
 

Продаю домены, принимаю wm, ec

С нами с 23.03.03
Сообщения: 2094
Рейтинг: 1035

Ссылка на сообщениеДобавлено: 16/01/14 в 10:10       Ответить с цитатойцитата 

S_Flash писал:


ПС Еслиб дамп был в пределах 10к, то я бы попробовал справиться обычным редактором, например ST2, но дамп, скажем так, крупнее на порядок! ;)


Простенький пхп скрипт сделает это за пару минут.

7
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 16/01/14 в 11:43       Ответить с цитатойцитата 

Stek писал:
emeditor хоть в гиг дамп откроет. Там же реплейс можно на регулярке построить.

Тут не совсем тривиальный Search and Replace.. В каждой строке индивидуальный replace.

1
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 16/01/14 в 11:49       Ответить с цитатойцитата 

XiVa: Как мне кажется php немного для других целей создавался. Локально на винду его как cli вроде как не ставят. В серверном исполнении такой скрипт будет неинтересен, так как будет серьёзно жрать память и иметь огромное, в понимании скрипта, время исполнения. (Т.е. на лету это будет некомильфо). Это типо как ножичком раскручивать ноутбук вместо отвёртки, вроде как шурупы выкручиваются, а рано или поздно понимаешь, что что-то не то! ;)
Будь я на линуксе я бы задействовал лучше баш. Под виндой аналога баша я не знаю. Вот я и подумал, что эту работу красиво и быстро выполнит sed, тем более это его прямое назначение.

1
 



С нами с 03.07.07
Сообщения: 481
Рейтинг: 862

Ссылка на сообщениеДобавлено: 16/01/14 в 11:54       Ответить с цитатойцитата 

Эту операцию разово нужно выполнить или она с какой-то периодичесностью должна быть?
Если разово - то на пыхе тут написать, выполнить и забыть. Если периодически - ну питон к примеру. Меньше памяти будет отъедать.

7
 



С нами с 13.08.03
Сообщения: 533
Рейтинг: 481

Ссылка на сообщениеДобавлено: 16/01/14 в 11:58       Ответить с цитатойцитата 

Это не для sed..
На AWK можно - как раз под него задача, распарсить входные поля, перетусовать-пересчитать-поменять все и потоком же выплюнуть, на построчную скоростную обработку как раз заточен, в любом *nix есть.
Но синтаксис достаточно своеобразный, и если разовая задача - легче действительно на пхп набросать и на пережевывание отдать, чай пойти пить icon_smile.gif

9
 

Продаю домены, принимаю wm, ec

С нами с 23.03.03
Сообщения: 2094
Рейтинг: 1035

Ссылка на сообщениеДобавлено: 16/01/14 в 14:26       Ответить с цитатойцитата 

Цитата:
XiVa: Как мне кажется php немного для других целей создавался.


Да не пох. ли, для чего он создавался, тебе шашечки или ехать? icon_smile.gif Читай из файла построчно, пиши лог, чтобы в случае перезагрузки не с начала стартовать и все, сойдет любой шаред хостинг.

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 16/01/14 в 15:22       Ответить с цитатойцитата 

XiVa: И шашечки и ехать.. Где мне взять сервер с php для единоразовой задачи?

1
 

Я держусь там. Счастья мне, уд

С нами с 24.05.05
Сообщения: 16096
Рейтинг: 219

Ссылка на сообщениеДобавлено: 16/01/14 в 17:27       Ответить с цитатойцитата 

S_Flash писал:
Есть некий дамп:
word1|some_text_KEY_some_text_KEY_some_text_KEY_some...
word2|some_text_KEY_some_text_KEY_some_text_KEY_some...
word3|some_text_KEY_some_text_KEY_some_text_KEY_some...

wordN|some_text_KEY_some_text_KEY_some_text_KEY_some...

Надо в каждой отдельной строке заменить все 3 её KEY на то слово word1,word2,..wordN, что стоит в начале этой строки! word(n-e) отделяетя символом |, их можно только идентифицировать только как jn началf строки до '|'.

Должно получиться:
word1|some_text_word1_some_text_word1_some_text_word1_some...
word2|some_text_word2_some_text_word2_some_text_word2_some...
...

ПС Еслиб дамп был в пределах 10к, то я бы попробовал справиться обычным редактором, например ST2, но дамп, скажем так, крупнее на порядок! ;)


KEY одинаковый везде?

Здесь не место для бесед: грохот на пределе
Как при старте ста ракет, как девятый вал

1
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 16/01/14 в 17:51       Ответить с цитатойцитата 

Оборотень писал:
KEY одинаковый везде?

ага и заменить надо в каждой строчке на одинаковое для этой строки

2
 



С нами с 13.08.03
Сообщения: 533
Рейтинг: 481

Ссылка на сообщениеДобавлено: 16/01/14 в 18:34       Ответить с цитатойцитата 

S_Flash писал:
ага и заменить надо в каждой строчке на одинаковое для этой строки

ну так первое в этой строке и будет $1
awk {$1....}
валяй-валяй, изучай - неужто думаешь предки дурнее нас были и с подобными задачами не сталкивались, с перетусовкой-переделкой полей в простом текстовом файле ?? icon_smile.gif
потомки обленились, дай сразу готовый рецепт для андроида - а чуть подумать и сгруппировать комманды в поток..

9
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 16/01/14 в 18:48       Ответить с цитатойцитата 

dm: Я когда увидел твой набор дисков с OS Linux сразу понял, что для тебя нет ничего невозможного в консоли! icon_smile.gif
Дай, хоть на чуток расслабиться! icon_smile.gif
Пошёл учить awk ... smail102.gif

0
 



С нами с 03.07.07
Сообщения: 481
Рейтинг: 862

Ссылка на сообщениеДобавлено: 16/01/14 в 20:46       Ответить с цитатойцитата 

Код: [развернуть]

конечно KEY должен быть уникальным вхождением в каждую строку. иначе лишнего назаменяться может

python, php, js

9
 



С нами с 03.07.07
Сообщения: 481
Рейтинг: 862

Ссылка на сообщениеДобавлено: 16/01/14 в 21:11       Ответить с цитатойцитата 

Код: [развернуть]

то же самое если не использовать массивы и регулярки. в теории должно отъесть меньше памяти и работать быстрее

9
 



С нами с 14.11.05
Сообщения: 56
Рейтинг: 177

Ссылка на сообщениеДобавлено: 16/01/14 в 23:03       Ответить с цитатойцитата 

awk
Код: [развернуть]

Семок тому, кто напишет на sed.

11
 



С нами с 22.05.09
Сообщения: 639
Рейтинг: 1087

Ссылка на сообщениеДобавлено: 17/01/14 в 02:16       Ответить с цитатойцитата 

file.txt
Цитата:
word1|some_text_KEY_some_text_KEY_some_text_KEY_some...
word2|some_text_KEY_some_text_KEY_some_text_KEY_some...
word3|some_text_KEY_some_text_KEY_some_text_KEY_some...


Код: [развернуть]

12
 



С нами с 13.08.03
Сообщения: 533
Рейтинг: 481

Ссылка на сообщениеДобавлено: 17/01/14 в 07:32       Ответить с цитатойцитата 

О !
стоило чуть подначить icon_smile.gif

8
 



С нами с 03.07.07
Сообщения: 481
Рейтинг: 862

Ссылка на сообщениеДобавлено: 17/01/14 в 13:08       Ответить с цитатойцитата 

Дада. Чуть подрочить всегда стоит icon_cool.gif

python, php, js

8
 



С нами с 13.08.03
Сообщения: 533
Рейтинг: 481

Ссылка на сообщениеДобавлено: 17/01/14 в 18:09       Ответить с цитатойцитата 

ну, у кого что болит..
"жениться вам надо, барин" (c)
и с классиками русской литературы - не спорь icon_smile.gif

8
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »