Size: a a a

2020 September 17

F

Fljúgandi Kettlingur... in pro.bash
в нем нет \d, есть [[:digit:]], но это отвратительно
источник

x

xoyozo in pro.bash
вы от куда такие грамотные, дайте линк, я тоже хочу
источник

аᶘ

асоциальный пикотран... in pro.bash
xoyozo
вы от куда такие грамотные, дайте линк, я тоже хочу
источник

F

Fljúgandi Kettlingur... in pro.bash
тролль
источник

F

Fljúgandi Kettlingur... in pro.bash
xoyozo
вы от куда такие грамотные, дайте линк, я тоже хочу
мы в этом много лет плаваем, и отличия BRE/ERE/PCRE выучили блин :(
источник

F

Fljúgandi Kettlingur... in pro.bash
grep - BRE
grep -F / fgrep - fixed
grep -E / egrep - ERE
grep -P - PCRE
pcregrep - тоже pcre, но немножко другой, потому что идите нафиг
источник
2020 September 18

ł

łibfitź.r13.a in pro.bash
Тут кажется кто-то недавно говорил, что for stuff in $(ls -A) небезопасно/неправильно/...
Как лучше/правильно?
источник

️ ️️ in pro.bash
for f in ./* ./.*
источник

ł

łibfitź.r13.a in pro.bash
А чем это лучше?
источник

F

Fljúgandi Kettlingur... in pro.bash
łibfitź.r13.a
А чем это лучше?
тем, что файл с пробелами нормально обработает, а не как два
источник

️ ️️ in pro.bash
и не вызывается лишний бинарник
источник

F

Fljúgandi Kettlingur... in pro.bash
потому что $(ls собирает имена файлов в строку, а for разбирает ее по пробелам
источник

ł

łibfitź.r13.a in pro.bash
️ ️️
и не вызывается лишний бинарник
Ну это звучит как экономия на спичках
источник

ł

łibfitź.r13.a in pro.bash
А ещё, вот допустим у меня есть такой говнокод
for x in $(ls -A); do cp ${x} ...; done
Это можно как-то сделать через find -print0 | xargs -0, чтобы уж точно никакие пробелы и \n не помешали? Я никак не могу научиться в xargs
источник

️ ️️ in pro.bash
find . \
 -maxdepth 1 \
 -mindepth 1 \
 -exec cp -- {} "${dst}" +
источник

аᶘ

асоциальный пикотран... in pro.bash
łibfitź.r13.a
А ещё, вот допустим у меня есть такой говнокод
for x in $(ls -A); do cp ${x} ...; done
Это можно как-то сделать через find -print0 | xargs -0, чтобы уж точно никакие пробелы и \n не помешали? Я никак не могу научиться в xargs
cp -- a/* a/.* b
источник

️ ️️ in pro.bash
источник

аᶘ

асоциальный пикотран... in pro.bash
Не, ну а чо. KISS!
источник

️ ️️ in pro.bash
ну да
источник

аᶘ

асоциальный пикотран... in pro.bash
łibfitź.r13.a
А ещё, вот допустим у меня есть такой говнокод
for x in $(ls -A); do cp ${x} ...; done
Это можно как-то сделать через find -print0 | xargs -0, чтобы уж точно никакие пробелы и \n не помешали? Я никак не могу научиться в xargs
Если же очень хочется find -print0 | xargs -0, то тут две развилки. Если команда требует написать что-то справа относительно аргументов (например, как в cp после аргументов нужно указать destination), то нужно использовать систему шаблонов (xargs -I):
find . -maxdepth 1 -mindepth 1 -type f -print0 | xargs -r -0 -I % cp % ...

В таком случае вызовется N процессов cp, в зависимости от того, сколько у тебя было файлов в find.
Намного более простой вариант в данном случае вызывать cp с глоббингом, тогда вместо вызова файлов по одному будет один вызов cp с N аргументами. Если N сильно большое, то в теории оно может не влезть в буфер shell'а, тогда надо обратно будет откатываться на find, но тут уже зависит от твоего юзкейса.

Если ты хочешь вызвать команду с аргументами, после которой ничего вставлять не надо, то юзается следующая конструкция:
find . -maxdepth 1 -mindepth 1 -type f -print0 | xargs -0 echo. В этом случае xargs засунет НЕКОТОРОЕ количество строчек как аргументы к echo и вызовет 1 или более echo (зависит от количества аргументов). Ещё xargs'у можно через -n передать максимальное количество аргументов, которое можно засунуть в одну команду, чтобы делать это явно.
источник