LinuxForum.Fans
Тема

Евангелие от drBatty

Автор: drBatty 158 сообщений 24865 просмотров
#101383
newzenon написал:
find . -iname '*txt' -exec grep -l %some_text% {}|while read i; do rm "$i"; done

ламерство.
вот так - правильно:

text
find . -name "*.txt" -exec grep test {} \; -delete
#101386
Iskan Der написал:
ls *.txt | Select-String -Pattern 'какой-то текст' -List | ForEach-Object -process { rm $_.Filename }

так и запишем - решение тяжеловесное, кривое, непонятное, и в добавок, ещё и НЕ рабочее (пруфпик прилагается).
и букв много.а ещё, это видимо если и будет работать, то жутко медленно. короче - маздай, он и есть - маздай.

ЗЫЖ прошёл по ссылке (http://windows-powershell-scripts.blogspot.com/)
1) почему не по-русски? где ваше хвалёное "юзер френдли"???
2) почему эта гадость ещё и по разному ставится в зависимости от архитектуры?
3) и вообще - непонятно.
4) а если инета нет? где man?

Короче - фтоппку. Простите за жаргон. Но лично мне даже /dev/null засорять этим не хочется.

#101390
drBatty написал:
По факту: в венде нет никакого повершелла. точка.

Винда у вас, видимо, ХР, та самая, что 2002 года? Обновления в силу ее левоты, видимо, не ставим? Так чего следовало ожидать? Я не отрицал, что сия тулза - относительно новая, включена по дефолту в 7ку, в более старые винды приходит с обновлениями (ессно, лишь к тем, кто обновляется).
В общем, просто признайте, что ваш исходный тезис о приспособленности ps лишь для узкого круга задач не имеет ничего общего с реальностью, да и закроем уже этот вопрос.

#101392

Одному мне кажется, что PS слизан с BASH (ничего святого)?

#101394
Darth Revan написал:
Одному мне кажется, что PS слизан с BASH (ничего святого)?

Я бы сказал, слизана концепция вороха мелких специализированных утилиток, которые с помощью специальных языковых средств можно объединять для решения различных задач. Bash, впрочем, тоже в этом был неоригинален, ибо слизан с sh.

#101395

Iskan Der
Но BASH же не пытается составлять конкуренцию SH, а тут говорится, что BASH не нужен, ибо есть PS.

Iskan Der написал:
вороха мелких специализированных утилиток
Зато этот ворох работает в любом Shell и даже без Shell.
#101396
drBatty написал:
[quote=Iskan Der]ls *.txt | Select-String -Pattern 'какой-то текст' -List | ForEach-Object -process { rm $_.Filename }

так и запишем - решение тяжеловесное, кривое, непонятное, и в добавок, ещё и НЕ рабочее (пруфпик прилагается).
и букв много.а ещё, это видимо если и будет работать, то жутко медленно. короче - маздай, он и есть - маздай.

ЗЫЖ прошёл по ссылке (http://windows-powershell-scripts.blogspot.com/)
1) почему не по-русски? где ваше хвалёное "юзер френдли"???
2) почему эта гадость ещё и по разному ставится в зависимости от архитектуры?
3) и вообще - непонятно.
4) а если инета нет? где man?[/quote]
По поводу тяжеловесности - я ж говорю, можно наверняка и короче записать, я не заморачивался. Про понятность - это уж кто к чему привык. Работоспособность проверена, не сочиняйте. Про остальное:
1. потому что первый попавшийся блог был на английском. есть русскоязычные, ссылки подогнать? :)
2. чего? Windows Update и все тут.
3. да, все новое поначалу непонятно, удивлены? :)
4. Get-Help <имя командлета>
Одним словом, заканчивайте уже придираться к мелочам, это вас не красит.

#101397
Darth Revan написал:
а тут говорится, что BASH не нужен, ибо есть PS.

Где это говорится? Ув. drBatty утверждал, что нормальной консоли в винде нет, я утверждаю, что есть - ps. О конкуренции bash vs ps речь вообще не идет, ибо в никсах нет ps, а в винде - bash.

#101399

Iskan Der написал:
в никсах нет ps
Надо исправить :D, ибо
Iskan Der написал:
винде - bash
очень даже есть (Cygwin).
#101410

Iskan Der
Исправлено примерно также, как и BASH на Windows (Cygwin vs. Mono?).

#101415
Darth Revan написал:
Iskan Der
Исправлено примерно также, как и BASH на Windows (Cygwin vs. Mono?).

Очевидно, да. В любом случае, ярые поклонники фаллометрии уже имеют какую-никакую возможность устроить мега-баттл Bash vs Powershell :)

#101416

А если я использую TCSH :lol:?

#101417
Darth Revan написал:
А если я использую TCSH :lol:?

Ну начинается.. В очередь! Виндовых шеллов на всех не хватит! :)

#101418
Iskan Der написал:
Винда у вас, видимо, ХР, та самая, что 2002 года? Обновления в силу ее левоты, видимо, не ставим?

обижаете. нормальная корпоративка. ключ легальный. обновления ПОСТАВИЛ - прокатило.
ключ - КУПЛЕННЫЙ ЛЕГАЛЬНО (хотя сам образ я стянул с торрентов)

Iskan Der написал:
В общем, просто признайте, что ваш исходный тезис о приспособленности ps лишь для узкого круга задач не имеет ничего общего с реальностью, да и закроем уже этот вопрос.

пруфпик я приложил. НЕ РАБОТАЕТ. мне что, идти к этому Петру, и делать пруфпик, где написана легальность этой венды? Расскажите, КАК это делать? Проверка УЖЕ пройдена. Скачался IE8 и ещё какой-то KB*. ЧЯДНТ??

Iskan Der написал:
По поводу тяжеловесности - я ж говорю, можно наверняка и короче записать, я не заморачивался. Про понятность - это уж кто к чему привык. Работоспособность проверена, не сочиняйте. Про остальное:
1. потому что первый попавшийся блог был на английском. есть русскоязычные, ссылки подогнать? smile
2. чего? Windows Update и все тут.
3. да, все новое поначалу непонятно, удивлены? smile
4. Get-Help <имя командлета>
Одним словом, заканчивайте уже придираться к мелочам, это вас не красит.

то, что выше представлено (с while) тоже тяжеловесно и медленно, видно, писал новичок. мой вариант получше (и вроде - идеальный. Я не вижу, как его улучшить).
1) надо было сразу. Раз уж погнали мну в инетернеты, то будьте любезны.
2) сделано
3) удивлён. Утилита поиска ДОЛЖНА называться find, про grep я уже писал, ПОЧЕМУ она так называется, акция удаления называется -delete. В вашем варианте всё через задницу - вместо поиска вы зачем-то получаете список.
Select-String - вообще непонятно к чему. Это grep такой?
ForEach-Object -process к чему тут цикл вообще?
-process это что за хрень? (нет, в гугл сами идите, мне - своими словами)
4) и откуда мне это знать? я-же пойду, проверю...

Iskan Der написал:
Одним словом, заканчивайте уже придираться к мелочам, это вас не красит.

если НЕ работоспособность скрипта на 95% машинах - мелочь?

Iskan Der написал:
Где это говорится? Ув. drBatty утверждал, что нормальной консоли в винде нет, я утверждаю, что есть - ps. О конкуренции bash vs ps речь вообще не идет, ибо в никсах нет ps, а в винде - bash.

ну скачать-то можно и bash в венду, и ps в линукс. По умолчанию нету PS (ни в венде, ни в линуксе. Извините, Windows7 есть ещё далеко не у всех)

А вот coreutils, find, sed есть везде. В отличие от bash (см. здесь: http://linuxforum.ru/viewtopic.php?pid=115524#p115524 ). И везде скрипты работают как ожидается (от роутера до супер-компьютера).

#101422
Darth Revan написал:
А если я использую TCSH laugh?

причём тут find? мой однострок разве не заработает в вашем шелле?

Iskan Der написал:
Ну начинается.. В очередь! Виндовых шеллов на всех не хватит! smile

э... нет. не съезжайте с темы. дана задача, дайте нормальное решение. чтоб работало на вышеупомянутом компьютере. мне всё равно, на повершелле оно, или ещё на чём.

есть директория, в ней n файлов *.txt, в файлах разный текст, не суть какой. Надо удалить все файлы, в которых есть текст %some_text%.

решение для любых NIX*ов я уже дал. Теперь займёмся вендой (есть Альтернативный вариант - я вам даю номер счёта этого Петра, и вы отсылаете ему $$$ на новую венду, и на новый компьютер. Ибо Windows7 на его Celleron'е 2000+1024Mb будет тормозить)

#101429

Насчет обновлений уж не знаю, УМВР. PS приехал сам в свое время на висту, в 7ке уже был сразу.

drBatty написал:
1) надо было сразу. Раз уж погнали мну в инетернеты, то будьте любезны.
2) сделано
3) удивлён. Утилита поиска ДОЛЖНА называться find, про grep я уже писал, ПОЧЕМУ она так называется, акция удаления называется -delete. В вашем варианте всё через задницу - вместо поиска вы зачем-то получаете список.
Select-String - вообще непонятно к чему. Это grep такой?
ForEach-Object -process к чему тут цикл вообще?
-process это что за хрень? (нет, в гугл сами идите, мне - своими словами)
4) и откуда мне это знать? я-же пойду, проверю...

1. ну хотя бы вот; если не понравится - все-таки в гугл
3. еще раз для особо внимательных: мой вариант был собран на коленке на скорую руку, на статус идеального не претендует. Что до непонятных названий, тут кто к чему привык. Я же не придираюсь, что большая часть юниковых команд/утилит имеет вообще нечеловеческие названия (rm, cp, ls вместо remove, copy, list, ну и т.д.).
4. а откуда человеку, впервые увидевшему bash, знать про man?

drBatty написал:
По умолчанию нету PS (ни в венде, ни в линуксе. Извините, Windows7 есть ещё далеко не у всех)
А вот coreutils, find, sed есть везде. В отличие от bash (см. здесь: http://linuxforum.ru/viewtopic.php?pid=115524#p115524 ). И везде скрипты работают как ожидается (от роутера до супер-компьютера).

Про обновление я сказал, что там у вас не вышло - не знаю, обратитесь к админу :)
А так, скажем, графическая оболочка есть не в каждом линуксе - мне теперь кричать, что в линуксах вообще нет GUI?

#101430
drBatty написал:

Извините, Windows7 есть ещё далеко не у всех.

Не надо извиняться.

Я, например, апгрейдировал свою ХРень аж сразу на Ubuntu, минуя всякие недоноски типа Vista.
А после сидения в новой ОСи мне уже как-то по барабану 7-ка и все последующие лицензионно-мутные охмурялки для хомячков.
Так что, 7-ку вообще не светит стоять на моих компах.

Не извиняйтесь!

#101435
drBatty написал:
мой вариант получше (и вроде - идеальный. Я не вижу, как его улучшить).

Не берусь утверждать, что мой вариант лучше, но тоже работает, проверял в zsh :)

text

rm -f $(grep ANY_TEXT -l *.txt)
#101460
Iskan Der написал:
Насчет обновлений уж не знаю, УМВР. PS приехал сам в свое время на висту, в 7ке уже был сразу.

ну а что меня в воровстве обвиняете? (точнее, моего друга - Петра).

Iskan Der написал:
1. ну хотя бы вот; если не понравится - все-таки в гугл
3. еще раз для особо внимательных: мой вариант был собран на коленке на скорую руку, на статус идеального не претендует. Что до непонятных названий, тут кто к чему привык. Я же не придираюсь, что большая часть юниковых команд/утилит имеет вообще нечеловеческие названия (rm, cp, ls вместо remove, copy, list, ну и т.д.).
4. а откуда человеку, впервые увидевшему bash, знать про man?

1) вы издеваетесь? мы вообще ГДЕ находимся?!
3) мой вариант тоже на коленке написан. это не докторская диссертация, а обычный однострок - таких я за рабочий день десятки пишу.
4)

Показать
doc@bx:~$ help
GNU bash, version 3.1.17(2)-release (i486-slackware-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

JOB_SPEC [&] (( expression ))
. filename [arguments] :
[ arg... ] [[ expression ]]
alias [-p] [name[=value] ... ] bg [job_spec ...]
bind [-lpvsPVS] [-m keymap] [-f fi break [n]
builtin [shell-builtin [arg ...]] caller [EXPR]
case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir]
command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option
complete [-abcdefgjksuv] [-pr] [-o continue [n]
declare [-afFirtx] [-p] [name[=val dirs [-clpv] [+N] [-N]
disown [-h] [-ar] [jobspec ...] echo [-neE] [arg ...]
enable [-pnds] [-a] [-f filename] eval [arg ...]
exec [-cl] [-a name] file [redirec exit [n]
export [-nf] [name[=value] ...] or false
fc [-e ename] [-nlr] [first] [last fg [job_spec]
for NAME [in WORDS ... ;] do COMMA for (( exp1; exp2; exp3 )); do COM
function NAME { COMMANDS ; } or NA getopts optstring name [arg]
hash [-lr] [-p pathname] [-dt] [na help [-s] [pattern ...]
history [-c] [-d offset] [n] or hi if COMMANDS; then COMMANDS; [ elif
jobs [-lnprs] [jobspec ...] or job kill [-s sigspec | -n signum | -si
let arg [arg ...] local name[=value] ...
logout popd [+N | -N] [-n]
printf [-v var] format [arguments] pushd [dir | +N | -N] [-n]
pwd [-LP] read [-ers] [-u fd] [-t timeout] [
readonly [-af] [name[=value] ...] return [n]
select NAME [in WORDS ... ;] do CO set [--abefhkmnptuvxBCHP] [-o opti
shift [n] shopt [-pqsu] [-o long-option] opt
source filename [arguments] suspend [-f]
test [expr] time [-p] PIPELINE
times trap [-lp] [arg signal_spec ...]
true type [-afptP] name [name ...]
typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
umask [-p] [-S] [mode] unalias [-a] name [name ...]
unset [-f] [-v] [name ...] until COMMANDS; do COMMANDS; done
variables - Some variable names an wait [n]
while COMMANDS; do COMMANDS; done { COMMANDS ; }

юзеру help слАбо набрать? Если он в глухой провинции, без Интернета, без друга-гуру? Один на один с сервером на Slackware?

5 кнопок, и ВСЕ "таинства" на ладони. Если есть инет - то можно и по-русский. Уважаемый avl много лет назад перевёл man find, я перевёл info sed. Работа над ABS тоже идёт (переводы доступны). Вам непонятны детали? Спрашивайте.

Iskan Der написал:
Про обновление я сказал, что там у вас не вышло - не знаю, обратитесь к админу

не ясна ваша ирония - я и есть админ.

Iskan Der написал:
А так, скажем, графическая оболочка есть не в каждом линуксе - мне теперь кричать, что в линуксах вообще нет GUI?

и где её нет? в особых, узко специализированных дистрибутивах? ЕСТЬ ОНА ВЕЗДЕ. А где нет - можно поставить (хотя не очень понятно, зачем в роутере X-сервер).

zhevak написал:
Не извиняйтесь!

обидно. Не за себя. За людей. Они ведь РЕАЛЬНЫЕ ДЕНЬГИ платили. А теперь их в воровстве обвиняют.
Не, лично мне - параллельно. Я венду не покупал, и не использую. Уж если надо будет - http://store.slackware.com/

Lupo Alberto написал:
Не берусь утверждать, что мой вариант лучше, но тоже работает, проверял в zsh smile
text
rm -f $(grep ANY_TEXT -l *.txt)

Хороший ход. Есть недостатки (в командной строке всего 32768 символа, и в данном случае тоже получается сортированный список == затраты времени и тормоза), но и мой вариант не без недостатков.

Войдите или зарегистрируйтесь, чтобы ответить.