В Perl:
$ perl -ne 'print $last,"$_\n" if /^Commandline/; $last=$_' foo.txt
Start-Date: 2013-11-11 07:43:49
Commandline: apt-get install --no-install-recommends catfish
Start-Date: 2013-10-17 23:00:06
Commandline: apt-get install shimmer-themes
Start-Date: 2013-10-17 23:01:52
Commandline: apt-get install --no-install-recommends gedit
Или, для удаления пустых строк:
$ perl -ne 'print $last,$_ if /^Commandline/; $last=$_' foo
Start-Date: 2013-11-11 07:43:49
Commandline: apt-get install --no-install-recommends catfish
Start-Date: 2013-10-17 23:00:06
Commandline: apt-get install shimmer-themes
Start-Date: 2013-10-17 23:01:52
Commandline: apt-get install --no-install-recommends gedit
-n
причины переключателя perl
обработать входной файл линию за линией, сохраняя каждую строку в специальной переменной $_
. scriptlet выше печати текущая строка ($_
) и предыдущая строка ($last
) если текущий запускается с Commandline
. Это затем сохраняет текущую строку как $last
и перемещения к следующей строке.
Использование ImageMagick на основе rlogo_icon.h .
#!/bin/sh
echo 'unsigned long rlogo_icon[] = {'
identify -format '%w, %h,' $1
convert $1 -color-matrix '0 0 1 0, 0 1 0 0, 1 0 0 0, 0 0 0 1' RGBA:- | hexdump -v -e '1/4 "0x%08x,\n"'
echo '};'
Использование:
./script.sh rlogo_icon.png > rlogo_icon.h
Я не уверен, что эта -цветная-матрица
всегда верна. Я разместил байты в порядке BGRA, потому что мой компьютер работает с прямым порядком байтов.