Чистый раствор Баша с использованием IFS
и read
. Обратите внимание, что строки не должны содержать$'\2'
(или что-то еще, что вы используете для IFS, к сожалению, $'\0'
не работает, но, например. $'\666'
делает):
#!/bin/bash
split_by () {
string=$1
separator=$2
tmp=${string//"$separator"/$'\2'}
IFS=$'\2' read -a arr <<< "$tmp"
for substr in "${arr[@]}" ; do
echo "<$substr>"
done
echo
}
split_by '1--123--23' '--'
split_by '1?*123' '?*'
Или используйте Perl:
perl -E 'say for split quotemeta shift, shift' -- "$separator" "$string"
Раскладка клавиатуры должна быть указана в /etc/rc.conf
. Например,.
keymap="cz.iso2"
Цитирование справочной страницы rc.conf
keymap (str) If set to “NO”, no keymap is installed, otherwise the value is used to install the keymap file found in /usr/share/syscons/keymaps/⟨value⟩.kbd (if using syscons(4)) or /usr/share/vt/keymaps/⟨value⟩.kbd (if using vt(4)).
Ссылка:rc.conf справочная страница
Итак, я долго разбирался, но при выборе "Чешский (QWERTZ, акцентные клавиши )" все работает. У этой конкретной раскладки на самом деле две раскладки :английская и чешская. Когда вы посмотрите на файл раскладки клавиатуры (/usr/share/vt/keymaps/cz.kbd
), вы увидите:
...
# English/Czech keyboard lock: (Left)Alt+Shift
...
Итак, нажмите(Влево )Alt + Shift для переключения с английской на чешскую раскладку.