Awk
решение для вашего исходного состояния "для каждого уникального значения в столбце 1 интервал значений в столбце 2"(поскольку вы значительно изменили свое состояние):
awk 'NR > 1{
if ($1 == num1) intvl += num2 - $2;
else { print intvl; intvl = 0 }
}
{ num1 = $1; num2 = $2 }
END{ print intvl }' file
Пример вывода:
22.3612
23.2031
Покрытие второго условия «печатать предыдущее и последнее значение столбца 2, если значение в столбце 1 изменяется»:
awk '!a[$1]++{
if (first != "") { print first, last; first = last = "" }
first = $2
}
{ last = $2 }
END{ print first, last }' file
Выход:
115.944480 93.583322
122.797168 99.594068
Следующий вариант неидеален, так как он избавляется от красивого -экрана, показывающего текущую громкость, но, по крайней мере, работает надежно даже после того, как апплет в трее исчезает, а различные регуляторы громкости кажутся неработоспособными. отсоединены друг от друга.
Создайте где-нибудь скрипт со следующим:
#!/bin/bash
CURVOL=`pacmd list-sinks | grep 'volume: [^0-9]' | sed 's/.* \([0-9]\{1,3\}\)\%.*/\1/'`
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
VOLCHANGE=`cat $DIR/volume-increment`
if (($CURVOL > (100 - $VOLCHANGE))) ; then
pactl set-sink-volume @DEFAULT_SINK@ 100% ;
else
pactl set-sink-volume @DEFAULT_SINK@ +$VOLCHANGE% ;
fi
В том же каталоге создайте файл с именем volume-increment
с абсолютным процентным объемом, который вы хотите изменять при каждой активации. Например. у вас может быть файл, состоящий из одной строки с символом 5
.
Аналогичный скрипт можно использовать для уменьшения громкости:
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
VOLCHANGE=`cat $DIR/volume-increment`
pactl set-sink-volume @DEFAULT_SINK@ -$VOLCHANGE% ;
Затем откройте апплет «Сочетания клавиш», отключите исходные сочетания клавиш для управления громкостью и добавьте пользовательские сочетания клавиш, указывающие на приведенные выше сценарии.
Причина, по которой кнопка "увеличение громкости" немного длиннее, заключается в том, что она ограничена 100%. Без этого,вы сможете установить громкость слишком высокой (выше предела 140% звукового апплета )и, возможно, сломать ваше оборудование (или, по крайней мере, ваш слух.)
(Это тоже можно было бы реорганизовать, но это работает достаточно хорошо.)
Та же проблема при установке наушников или bluetooth-гарнитуры. Попробуйте перезапустить звук:
pulseaudio --kill
pulseaudio -D