Size: a a a

2021 March 22

TokaToka Яздесь... in pro.bash
Если фильтры не длинные, то может и не оверкилл
источник

🌚

🌚 YupiRex in pro.bash
Fljúgandi Kettlingur
ok.

id,name,"magical number"
1,"Vadim Priluzkiy",78
2,"Pupkin, Vasya",66

Задача: найти сумму magical number.
Пайтон, для сравнения, сделает это как-то так:
python -c 'import csv,sys; reader = csv.DictReader(sys.stdin); print( sum ([ int(row["magical number"]) for row in reader ]) ); '

У авка... возникнут проблемы.
я не сильно силен в седе, может поправят, у меня вышло примерно так
sed -rn 's/[0-9]+,.*,([0-9]+).*/\1/; G; 1,2! s/\n/+/; 1d; $ s/.*/echo $((&))/ep; h' /tmp/file.csv
источник

F

Fljúgandi Kettlingur... in pro.bash
🌚 YupiRex
я не сильно силен в седе, может поправят, у меня вышло примерно так
sed -rn 's/[0-9]+,.*,([0-9]+).*/\1/; G; 1,2! s/\n/+/; 1d; $ s/.*/echo $((&))/ep; h' /tmp/file.csv
красиво, но твой преемник может немножко захотеть тебя убить
источник

🌚

🌚 YupiRex in pro.bash
Fljúgandi Kettlingur
красиво, но твой преемник может немножко захотеть тебя убить
ты же шаришь в сед, я думал ты поправишь, ну а по сути читабельнее было через конвеер 3 седа сделать. но медленнее
источник

F

Fljúgandi Kettlingur... in pro.bash
TokaToka Яздесь
Тут все одним циклом в стиле ‘’’magnum=0
while read line; do
magnum=$magnum + $((echo $line | cut -d ‘,’ -f 2));
done’’’
можно решить, вроде как.
(Простите за ощибке в синтаксисе, почти сплю, проверять лень, но идея вроде ясная))
Если xargs может построчно извлекать из файла, то вообще можно тру-oneliner запилить под эту структуру.
А авк, наверно, оверкилл для такой задачи.
нельзя. Эта штука не понимает разницу между ,TokaToka, и ,"Pupkin,Vasya",
источник

F

Fljúgandi Kettlingur... in pro.bash
🌚 YupiRex
ты же шаришь в сед, я думал ты поправишь, ну а по сути читабельнее было через конвеер 3 седа сделать. но медленнее
Для таких задач ИМХО лучше делать читаемее, а не быстрее. Компьютерное время дешево, а наше - дорого.
Если ты не хайлоад пишешь какой, конечно.
источник

🌚

🌚 YupiRex in pro.bash
Fljúgandi Kettlingur
Для таких задач ИМХО лучше делать читаемее, а не быстрее. Компьютерное время дешево, а наше - дорого.
Если ты не хайлоад пишешь какой, конечно.
ну я не делал, быстрее, я за час сделал 3 седа, а потом мучался соединить в 1, для хайлоада
источник

🌚

🌚 YupiRex in pro.bash
потратил примерно часа 2
источник

F

Fljúgandi Kettlingur... in pro.bash
🌚 YupiRex
потратил примерно часа 2
Зверь.
Тот случай, когда лучше взять перл или пайтон
источник

F

Fljúgandi Kettlingur... in pro.bash
Вообще разбор CSV/XML/HTML регулярками - это всегда ад, и лучше этого избегать.
источник

🌚

🌚 YupiRex in pro.bash
Fljúgandi Kettlingur
Вообще разбор CSV/XML/HTML регулярками - это всегда ад, и лучше этого избегать.
да, 150% согласен, было время тренироваться)
источник

TokaToka Яздесь... in pro.bash
Fljúgandi Kettlingur
нельзя. Эта штука не понимает разницу между ,TokaToka, и ,"Pupkin,Vasya",
Так там cut для первых двух полей, поля определяет по запятой - ориентировался на твой пример
источник

TokaToka Яздесь... in pro.bash
В цикле построчного обхода
источник

TokaToka Яздесь... in pro.bash
Но без циклов всяко лучше
источник
2021 March 23

C

CTpaHHoe in pro.bash
в gawk можно указать FPAT = "([^,]*)|(\"[^\"]+\")", тогда нормально разберёт
источник

∀lǝxǝʎ in pro.bash
CTpaHHoe
в gawk можно указать FPAT = "([^,]*)|(\"[^\"]+\")", тогда нормально разберёт
оф дока рекомендует немного другое
FPAT = "([^,]+)|(\"[^\"]+\")"
источник

∀lǝxǝʎ in pro.bash
только + вместо *
источник

C

CTpaHHoe in pro.bash
так тоже пойдет )
источник

∀lǝxǝʎ in pro.bash
ок. на другой странице той же доки они юзают *
источник

C

CTpaHHoe in pro.bash
а для хайлоада лучше бы продумать формат
источник