Last active
December 13, 2015 23:48
-
-
Save php-coder/4994008 to your computer and use it in GitHub Desktop.
Comment for http://eax.me/perl-oneliners/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Я согласен, что Perl и его однострочники могут быть удобны, но большинство примеров не очень удачны, | |
т.к. сделать тоже самое на shell-е может быть куда проще и при этом не нужно знать Perl и | |
помнить его ключи. | |
Например: | |
>cat file.csv | cut -d ';' -f 2 | grep -v afiskon | |
Легко упрощается до двух комманд: | |
>cut -d ';' -f 2 <file.csv | grep -v afiskon | |
а после и вовсе до одной: | |
>awk -F';' '{if($2~/afiskon/){print $2}}' file.csv | |
>perl -e 'printf "%x\n", 1234' | |
На шелле даже короче: printf "%x\n" 1234 | |
>perl -le 'while(glob "cgi-bin/*"){ print if -f }' | |
find cgi-bin -type f | |
>find ./ | perl -lne 'if(-T $_){ $d = `cat "$_"`; print if ($d =~ /test/i) && ($d !~ /debug/i) }' | |
grep -rl test | xargs grep -L debug | |
>echo 'hello, world!' | perl -pe 's/hello/goodbye/i' | |
echo 'hello, world!' | sed 's/hello/goodbye/i' | |
>perl -le 'print time()' | |
date +%s | |
>perl -e 'while(1) { system("cat worker.log | grep Failed | wc -l"); sleep 60 }' | |
Ааааа! Очерендное useless cat usage, см. http://partmaps.org/era/unix/award.html | |
cat worker.log | grep Failed | wc -l легко заменяется на grep -c Failed worker.log | |
А вся конструкция на watch -n 1 'grep -c Failed worker.log' | |
>cat id_list.txt | perl -le 'chomp; system("wget \"http://example.ru/api/v1.0/items?item_id=$_\"")' | |
Как-то так: sed 's|.*|http://example.ru/api/v1.0/items?item_id=\1|' d_list.txt | xargs wget | |
К сожалению, ОЧЕНЬ часто приходится видеть как люди для задач в которых shell реально | |
рулит используют не совсем подходящие инструменты -- от Ruby до Java :( | |
Примеры с обработкой JSON и конвертированием Base64/urlencode более убедительны, | |
т.к. в шелле это сложнее сделать либо совсем нет возможности. | |
Про Perl ещё хорошие статейки ещё можно почитать от Бена Окопника: | |
http://www.linuxlib.ru/prog/okopnic/ ну и его *великолепные* истории в детективном | |
жанре "Однострочник месяца на Perl": | |
http://linuxpage.ru/old/content/607 | |
http://linuxpage.ru/old/content/608 | |
(где-то в сети были ещё...) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment