Ваша команда работает для меня:
$ sed -r '/user-type/{N;s/user-type: (.*)\n.*gth: .*([0-9]+).*$/\1 \2/}' file.txt
admin 8
auth 8
Однако, если преобразовать ввод в формат DOS, я получу вывод, который вы видите:
$ sed -r '/user-type/{N;s/user-type: (.*)\n.*gth: .*([0-9]+).*$/\1 \2/}' <(sed 's/$/\r/' <file.txt)
8min
8th
Одно из решений - преобразовать ваш входной файл в окончание строки в стиле unix.
Другое решение - настроить команду sed таким образом, чтобы она допускала использование символов \ r
:
$ sed -r '/user-type/{N;s/user-type: (.*)\n.*gth: .*([0-9]+).*$/\1 \2/; s/\r//}' <(sed 's/$/\r/' <file.txt)
admin 8
auth 8
Или:
$ sed -r '/user-type/{N;s/user-type: ([^\r]*).?\n.*gth: .*([0-9]+).*$/\1 \2/}' <(sed 's/$/\r/' <file.txt)
admin 8
auth 8
Мне удалось решить проблему, найдя на ноутбуке комбинацию функциональных клавиш, которая переключает вывод внешнего дисплея, не имеющая отношения к самому Linux, но мне все равно было бы интересно найти если кто-нибудь знает способ решить проблему так, как я пытался изначально.
Что ж, я использую следующий сценарий в моей установке Arch Linux для автоматического переключения на внешний монитор при его подключении. Я мог бы попробовать этот сценарий (я считаю, что Kali также использует xrandr в качестве основного диспетчера отображения, поэтому он должен работать).
Единственное, что необходимо изменить, - это объявление переменных. Просто запустите xrandr
из консоли, чтобы увидеть имена вашего встроенного и внешнего дисплея. И соответственно измените переменные INT
и EXT
.
Затем вы можете добавить этот сценарий для запуска при запуске (после запуска X) и все.
#!/usr/bin/env bash
# monitor constants
INT=eDP1
EXT=HDMI1
# keep polling xrandr
while true; do
# using internal monitor but external was connected
if [ ! "${ACT}" == "${EXT}" ] && xrandr | grep "${EXT} connected"; then
# setup xrandr to use external monitor only
xrandr --output "${INT}" --off --output "${EXT}" --auto
ACT="${EXT}"
fi
# using external monitor but it was disconnected
if [ "${ACT}" == "${EXT}" ] && xrandr | grep "${EXT} disconnected"; then
# setup xrandr to use internal monitor only
xrandr --output "${EXT}" --off --output "${INT}" --auto
ACT="${INT}"
fi
# sleep for a moment
sleep 1
done