Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Активные темы » perl -e

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

mark74

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предлагаю составить памятку по однострочникам на Perl.
 
Добавлено:
  • вменяемая статья на habrahabr
  • perldoc perlrun на оф.сайте
  • 130 примеров с catonmat.net

    Код:
    perl -e 'print "Hello Unix!\n"'
    perl -e "print qq(Hello Windows!\n)"

     
    К примеру, надо вывести построчно переменную PATH в винде.
    Вот несколько решений. По сути одно и то же. Просто как иллюстрация работы параметров командной строки perl. Для удобства в виде BAT-файла:splitp.bat

  • Всего записей: 480 | Зарегистр. 25-01-2009 | Отправлено: 11:06 21-09-2016 | Исправлено: mark74, 20:49 04-10-2016
    metatrop

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По возможности имеет смысл делать скрипты, требующие не полную установку Perl, а только базовый набор функций miniperl.exe - тогда достаточно одного лишь исполняемого файла в 600 КБ размером, который можно легко запустить на любой машине.
     
    miniperl.exe лучше всего ставить v5.8.7 размером 647219 байт (и не следует использовать версию из пакета denwer3 размером 643072 байт - у неё баг в функции int).
     
    Впрочем, смотрю, это UNIX раздел...

    Всего записей: 313 | Зарегистр. 17-09-2010 | Отправлено: 13:53 23-09-2016 | Исправлено: metatrop, 13:56 23-09-2016
    mark74

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    metatrop
    Да и под виндой. Где те системы, на которых нельзя установить perl?
    Perl входит даже в дистрибутив Git под Windows.
     
    Вот возникла потребность востанавливать длинну буфера командной строки после запуска одной старой программы. Есть конечно куча утилит и даже с исходниками. Но есть и Win32::Console

    Всего записей: 480 | Зарегистр. 25-01-2009 | Отправлено: 05:56 27-09-2016
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mark74
    Цитата:
    К примеру, надо вывести построчно переменную PATH в винде.  
    Пример явно не для этой ветки (UNIX).
     
    Все вопросы касательно perl'а в этом разделе обычно обсуждаются в теме UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;
     
    На всякий случай сообщу Вам, что на форуме есть отдельный раздел — Прикладное программирование. В котором так же есть смысл обсуждать программы на Perl.

    ----------
    Microsoft gives you windows, linuх gives you the whole house...
    I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 09:21 27-09-2016
    mark74

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    спасибо за ссылки.
     
    Интересно: не находится место для этой темы на форуме... Здесь показалось слишком специфический раздел. Здесь тоже разногласия возникли.
     
    Пусть уже будет в никс-ветке.
     
    ещё пример:
    Как убрать концевые пробелы
    Код:
    perl -ple "s/[ \t]+$//" raw.txt > clean.txt

    Всего записей: 480 | Зарегистр. 25-01-2009 | Отправлено: 18:29 05-10-2016 | Исправлено: mark74, 11:04 16-10-2016
    snaky456



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Да и под виндой. Где те системы, на которых нельзя установить perl?

    Где-то остались системы, где еще не установлен PowerShell?

    Всего записей: 32 | Зарегистр. 18-02-2006 | Отправлено: 20:38 15-10-2016
    mark74

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    хотелось использовать какой-нибудь однострочник на perl для конвейерной перекодировки:
    prog1 | perl from-utf-8-to-cp866 | prog2
    но, как выяснилось, где есть perl там есть и iconv
    справедливо и для винды, по крайней мере, в случае Strawberry Perl
    так что, проще
    prog1 | iconv -f utf-8 -t cp866 | prog2

    Всего записей: 480 | Зарегистр. 25-01-2009 | Отправлено: 11:55 16-10-2016
    mark74

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вывести список двоичных чисел. Пример, на сколько лаконичен Perl.
    shell:
     perl -E 'printf "%2d %1\$5b\n", $_ for (0..31)"
    cmd:
     perl -E "printf qq(%2d %1\$5b\n), $_ for (0..31)"
    windows bat-файл:
     perl -E "printf qq(%%2d %%1\$5b\n), $_ for (0..31)"
     
    результат:
     0     0
     1     1
     2    10
     3    11
     4   100
     5   101
     6   110
     7   111
    ...

    Всего записей: 480 | Зарегистр. 25-01-2009 | Отправлено: 09:17 16-09-2018
    Открыть новую тему     Написать ответ в эту тему

    Компьютерный форум Ru.Board » Операционные системы » UNIX » Активные темы » perl -e


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru