Разбор завалов
Apr. 8th, 2015 06:43 amfind . -type f \
| perl -MFile::Copy -MFile::Path -nle \
'/\.([^\.\/]+)$/ and $ext = $1; print $ext; File::Path::make_path "../$ext"; move $_, "../$ext"'
http://shoorick.ru/2015/04/08/bulk-grouping/
find . -type f \
| perl -MFile::Copy -MFile::Path -nle \
'/\.([^\.\/]+)$/ and $ext = $1; print $ext; File::Path::make_path "../$ext"; move $_, "../$ext"'
wc
. Иногда хочется запускать её, например, раз в секунду, чтоб следить за выполнением какого-нибудь долгого процесса.wc
и выводит его результат, пока пользователю не надоест и он не нажмёт Ctrl+C#!/usr/bin/perl
print STDERR "Press ^C to exit\n";
my $cmd_line = 'wc ' . join ' ', @ARGV;
my $out;
while (1)
$out = `$cmd_line`;
chomp $out;
print "\cM$out";
sleep 1;
wcloop -l some-big-file.txt
watch -n 1 wc -l?И верно ведь посдказывает!
-dpixmap-format=pngmono
— он заставит лилипонд выводить безглючную монохромную картинку вместо серой. В случае с низкой разрешающей способностью получится, наверное, коряво. Но если выставить разрешающую способность побольше, например, в 600 dpi — получается вполне хорошо.Sorry, there have been more than 5 failed login attempts for this account. It is temporarily blocked. Try again later or request a new password.Насколько позже стóит повторить попытку — непонятно.
date +%sв MySQL для этого есть функция
UNIX_TIMESTAMP
.Под FreeBSD (в попадавшихся мне серверах) переменнаяIn the function
dcgettext
at every call the current setting of the highest priority environment variable is determined and used. Highest priority means here the following list with decreasing priority:
LANGUAGE
LC_ALL
LC_xxx
, according to selected locale categoryLANG
LANGUAGE
была неопределена — можно было смело использовать более короткую LANG
. Под убунтой такой фокус не проходит.LANGUAGE
— работает в обоих случаях.fishмусорfilename.ext
, не удаляя их после копирования. То есть, после копирования всей кучи он этот мусор удаляет, но пока копирование не завершено, файлы копятся. /tmp: write failed, filesystem is fullПриходилось вручную стирать лишние файлы.
echo `date '+%s%t'` $1 >> ~/.weight/data
В файл пишется время и вес. Разедлитель полей — символ табуляции. Дёшево и сердито. Обработка данных — в следующей серии.vi
. Некоторые клавиатурные команды — для поиска и перемещения — такие же, как в less
. Cкладывается ощущение, что less
— это read-only vi
: он даже тильды рисует вместо строк, находящихся после конца файла.vi
после почти двенадцатилетнего знакомства с BSD-шными ОСями — это, наверное, верх неторопливости.mpc playlist | grep $* | perl -ne '/(\d+)/ && print $1' -0777 | xargs mpc play
Ищет в проигрываемом списке первую попавшуюся песню, содержащую в названии (либо имени исполнителя) искомое слово./dev/dsp: device busyВидимо, шла нешуточная борьба за девайс: и mpc хотел в него попеть песни, и aRts хотел туда посвистеть всякие звуки. Но выход есть, он достаточно прост и описан во фрёвом руководстве:
Проверил — работает: теперь звук есть всегда. Можно даже две песни одновременно слушать.7.2.3. Использование нескольких источников звука
( ещё буквы )
svn delete URL_to_repo/path/file
Я как-то писал, что для набора нот true юниксоидам GUI не нужен, ибо есть, например, lilypond. Но вчера я всё-таки очередной раз попробовал гуёвое средство — Denemo. И, вроде, не без успеха.
Скорость набора в денеме весьма высока, ибо без мыши вполне можно обойтись: используются, большей частью лишь пара десятков клавиш: стрелки либо hjkl для передвижения курсора, abcdefg,' — для выбора высоты ноты, 012345 — для непосредственного ввода ноты нужной длительности (0 — целая, для четвертей можно вместо двойки лупить по пробелу), +- — для сдвига уже введённой ноты на полтона, . — для увеличения длительности уже введённой ноты в полтора раза. Практика показала среднюю скорость до 1 ноты в секунду. Но, увы, остальное так же быстро сделать не получилось: пришлось тыкаться в менюшки и, выгнав набранное в лилипондовый формат, ковырять уже его, попутно ковыряя доку.
В результате из файла весом в полтора кило:
% LilyPond file generated by Denemo version 0.7.6
%http://denemo.sourceforge.net/
\version "2.10.33"
\header{
title = "Вокализ"
composer = "С. Прокофьев"
}
#(set-global-staff-size 16)
#(set-default-paper-size "a4")
TenorI = \context Voice = TenorI {
\time 3/4
\stemUp
\repeat volta 2 {
c''8 d'' e''4 g' |
e''8[ f''] f''[ e''] e''4 |
d''8[ c''] e''[ c''] b'[ c''] |
g'2 a'8 b' |
%5
a' c'' c''4 d''8 e'' | }
\alternative {
{ d''4 f'' e'' | e''2. | }
{ d''4 f'' e'' | g''2.\fermata }
}
}
TenorII = \context Voice = TenorII {
%!Nonprimary Voice
\stemDown
\repeat volta 2 { g'2. |
c''2 c''4 |
g'2 g'4 |
g'2 a'8 b' |
%5
a'4 a' a' | }
\alternative {
{ a' c'' b' | c''2. |}
{ a'4 f'' e'' | e''2._\fermata }
}
}
Bariton = \context Voice = Bariton {
\stemUp
\repeat volta 2 { g8 f e4 e |
g8[ a] a[ g] g4 |
f8[ e] g[ e] e4 |
e2 e8 ees |
%5
d4 e f |}
\alternative {
{f f g | g2. |}
{f4 c' b | c'2.\fermata }
}
}
Bass = \context Voice = Bass {
%!Nonprimary Voice
\stemDown
\tieDown
\repeat volta 2 {
c2. ~ |
c2. ~ |
c2 b,8 c |
g,4 e, a, |
%5
f,2. ~ | }
\alternative {
{ f,4 d g, | c2. | }
{ f,4_\repeatTie d g | c'2._\fermata }
}
}
\score {
<<
\new StaffGroup <<
\new Staff = Tenor <<
\TenorI
\TenorII
>>
\new Staff = Bass <<
\clef bass
\Bariton
\Bass
>>
>>
>>
}
получается такая картинка:
Только я одного не пойму: какого $%#@ в портах всё ещё (я об этом уже писал) лежит версия 2.2.2 семилетней давности (ругающаяся на сгенерённое денемой), а более свежая 2.10.33, выложенная на сайте разработчика, сделана как самораспаковывающийся архив, ставится в /usr/local/lilypond
и не содержит никакого хелпа — ни man, ни info, который был доступен в версии 2.2.2. Непорядок!