Если полезно. У меня есть bluetooth-наушники, и мне нужно было настроить для них переключение между гарнитурой и профилями a2dp. Решено добавлением этих функций:
talk() {
card=$(pacmd list-cards | grep 'name:' | grep bluez | cut -d: -f2 | sed -e 's/[< >]//g')
pacmd set-card-profile $card headset_head_unit
}
mus() {
card=$(pacmd list-cards | grep 'name:' | grep bluez | cut -d: -f2 | sed -e 's/[< >]//g')
pacmd set-card-profile $card a2dp_sink
}
Изman perlrun
:
-Fpattern [...] You can't use literal whitespace or NUL characters in the pattern.
Но вы можете использовать \040:
$ (echo 'a b';echo 'b a';echo 'c a b') | perl -a '-F\040' -pe 'BEGIN{$last="---\n";}{local$_=$F[1];if(($last)ne$_){print"---\n";$last=$_;}}'
---
a b
---
b a
c a b
К сожалению, кажется, что это интерпретируется как один или несколько пробелов (, что также является значением по умолчанию для -F ), что мне не нужно.
\s
работает лучше, но также соответствует \t
:
$ (printf 'a\t b\n';echo 'b a';echo 'c a b') | perl -a '-F\s' -pe 'BEGIN{$last="---\n";}{local$_=$F[1];if(($last)ne$_){print"---\n";$last=$_;}}'
---
a b
b a
---
c a b