Вы можете сделать это следующим образом:
logcat |\
_PKG4PID_="$PKG_PID_LIST" \
perl -lpe '
%h = reverse split /\s+/, $ENV{_PKG4PID_} if $. == 1;
s/(?:\H+\h+){2}\K(\H+)/$h{$1}/;
'
Пояснение:
_PKG4PID_
равной вашей переменной оболочки PKG_PID_LIST
. perl
, инициализируйте хэш %h
ключами в качестве 2-го поля и значениями в качестве 1-го поля. /(?:\H+\h+){2}\K(\H+)/
и заменить его соответствующей хеш-записью $h{$1}
. Вы можете сделать скриншот окна терминала(https://askubuntu.com/questions/194427/what-is-the-terminal-command-to-take-a-screenshot). Чтобы освободить его от каких-либо дополнительных данных, вы можете запустить clear
перед любой такой командой.
Я бы предложил использовать imagemagick с такой командой, как:
ls -lrt /root/ |fmt | convert -size 1000x2000 xc:white -font "CourierNew" -pointsize 24 -fill black -annotate +15+30 "@-" -trim -bordercolor "#FFF" -border 10 +repage image.png
По сути, вам нужно отформатировать текст, чтобы imagemagick мог правильно его обработать. Поэтому вы должны передать команду через «fmt».
Только после этого можно преобразовать текстовый вывод в изображение с помощью команды «конвертировать». Я использовал здесь CourierNew, так как я привык к этому шрифту :-D, но если он вам не нравится, «конвертировать -список шрифтов | шрифт grep :» даст вам все шрифты, которые вы можете использовать.
Надеюсь, это помогло ответить на ваш вопрос!