The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Оптимизация и удаление временных файлов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Оптимизация и удаление временных файлов"  –1 +/
Сообщение от globi (ok) on 09-Май-16, 22:12 
Начал смотреть свои старые скрипты и понял что слишком много временных файлов делаю. Часть удалил, часть засунул в переменные. Вот что осталось

1) grep blabla /home/base.csv > /home/blabla.csv - ищу нужные строки в файле и сохраняю во временный
2) awk -F" *;" '$3< 9999' /home/blabla.csv > /home/blabla2.csv - далее ищу строки со значением меньше 9999 в третьем столбце и сохраняю во 2ой временный файл
3) cat /home/blabla2.csv | tr -d \" > /home/blabla3.csv - удаляю " и сохраняю в 3ий файл
4) awk -F" *;" ' {print "itog_"$1"-"$2"-"$9"     "$3} ' /home/blabla3.csv > /home/blabla4  - формирую запись из полученных значений в столбцах и опять же сохраняю в временный файл
5)sort -u /home/url_blabla > /home/blabla - сортирую и получаю итоговый файл

Выглядит как костыли которым крутят велосипед с квадратными колёсами.
В какую сторону посмотреть, что бы увидеть о чём почитать?)
Как я понял sed не работает с переменными или я не прав?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Оптимизация и удаление временных файлов"  +/
Сообщение от reader (ok) on 10-Май-16, 14:29 
>[оверквотинг удален]
> 2ой временный файл
> 3) cat /home/blabla2.csv | tr -d \" > /home/blabla3.csv - удаляю "
> и сохраняю в 3ий файл
> 4) awk -F" *;" ' {print "itog_"$1"-"$2"-"$9"     "$3}
> ' /home/blabla3.csv > /home/blabla4  - формирую запись из полученных значений
> в столбцах и опять же сохраняю в временный файл
> 5)sort -u /home/url_blabla > /home/blabla - сортирую и получаю итоговый файл
> Выглядит как костыли которым крутят велосипед с квадратными колёсами.
> В какую сторону посмотреть, что бы увидеть о чём почитать?)
> Как я понял sed не работает с переменными или я не прав?

почему не читаете /home/base.csv или /home/blabla.csv построчно в переменную и на шагах 2,3,4 работать с переменной

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Оптимизация и удаление временных файлов"  –2 +/
Сообщение от _ (??) on 10-Май-16, 17:05 
> Выглядит как костыли которым крутят велосипед с квадратными колёсами.

1) | 2) | 3) | 4) | 5) > result

> В какую сторону посмотреть, что бы увидеть о чём почитать?)

http://www.tldp.org/LDP/Bash-Beginners-Guide/html/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Оптимизация и удаление временных файлов"  –1 +/
Сообщение от globi (ok) on 10-Май-16, 18:51 
>> Выглядит как костыли которым крутят велосипед с квадратными колёсами.
> 1) | 2) | 3) | 4) | 5) > result
>> В какую сторону посмотреть, что бы увидеть о чём почитать?)
> http://www.tldp.org/LDP/Bash-Beginners-Guide/html/

Ну вам видимо и стоит почитать )

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Оптимизация и удаление временных файлов"  –1 +/
Сообщение от ALex_hha (ok) on 10-Май-16, 20:52 
> Ну вам видимо и стоит почитать )

не асилил пайпы? :facepalm:


# cat test.csv
1;2;1000
2;2;2000
3;2;3000
4;2;4000
5;qwerty;5000
6;2;6000
7;2;7000
8;qwerty;8000
9;2;9000
10;qwerty;10000
11;qwerty;11000

# grep -F qwerty test.csv | awk -F ';' '$3 < 9999'
5;qwerty;5000
8;qwerty;8000


Дописать оставшиеся пайпы будет тебе в качестве домашнего задания :D
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Оптимизация и удаление временных файлов"  +1 +/
Сообщение от Andrey Mitrofanov on 10-Май-16, 21:15 
>> Ну вам видимо и стоит почитать )
> не асилил пайпы? :facepalm:
> # grep -F qwerty test.csv | awk -F ';' '$3 < 9999'

Useless use of grep. :)   //К тем cat-у и второму awk-у.

> Дописать оставшиеся пайпы будет тебе в качестве домашнего задания :D

При условии, что выход один, всё, кроме sort-а, собрать в 1 awk -- упражнение на 3 с +. В тот же awk убрать и sort тоже -- ещё плюс 1 бал.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Оптимизация и удаление временных файлов"  +/
Сообщение от globi (ok) on 10-Май-16, 22:03 
>[оверквотинг удален]
> 7;2;7000
> 8;qwerty;8000
> 9;2;9000
> 10;qwerty;10000
> 11;qwerty;11000
> # grep -F qwerty test.csv | awk -F ';' '$3 < 9999'
> 5;qwerty;5000
> 8;qwerty;8000
>
> Дописать оставшиеся пайпы будет тебе в качестве домашнего задания :D

Осилил что-то получше )
awk -F" *;" '$3< '$price' && $9 ~ /'$item'/ '
уже понял что можно почти всё в awk сделать, читаю man

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Оптимизация и удаление временных файлов"  +/
Сообщение от ALex_hha (ok) on 10-Май-16, 23:38 
awk намного медленее это делает, но если вопрос скорости не стоит, то можно и в один awk все впихнуть


# time zcat -f -- access.log.gz | grep GET | awk '{print $7}' | wc -l
9465430

real    0m8.667s
user    0m8.515s
sys     0m3.327s

# time zcat -f -- access.log.gz | awk '/GET/{print $7}' | wc -l
9465430

real    0m49.934s
user    0m47.868s
sys     0m1.902s


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Оптимизация и удаление временных файлов"  +/
Сообщение от Andrey Mitrofanov on 11-Май-16, 09:55 
>[оверквотинг удален]
> 9465430
> real    0m8.667s
> user    0m8.515s
> sys     0m3.327s
> # time zcat -f -- access.log.gz | awk '/GET/{print $7}' | wc
> -l
> 9465430
> real    0m49.934s
> user    0m47.868s
> sys     0m1.902s

Гм, деситтна тормоз. //Стагнация в GNU! Требовать jit-ов и нативной конперяции в аптеках!

# time < access_log-20160511 grep GET | awk '{print $7}' | wc -l
161206

real    0m0.229s
# time < access_log-20160511 grep GET -c
161206

real    0m0.207s
# time < access_log-20160511 awk '$6~/^.GET/{c++}END{print c}'
161206

real    0m0.568s
# time < access_log-20160511 awk '/GET/{c++}END{print c}'
161206

real    0m1.115s

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру