IFS='|' read -r -a x <<< "$str"
echo "${x[7]:0:1}"
read
использует содержимое $ str и разбивает его на ] pipe |
char и помещает их в массив ( -a
) с именем x. Затем извлекаем один символ из начала 7-го поля.
perl -F'\|' -pale '($_) = $F[6] =~ /./g' <<< "$str"
-F
=> разделитель полей, -p
=> режим автопечати, -a
=> автоматическое разделение включено, -l
=> настройте разделитель записей ( RS
) на \ n
и ORS
на \ n
.
7-е поле $ F [6]
оценивается в контексте списка и как /./ g
и возвращает отдельные символы, из которых первый выбирается и сохраняется в $ _
, который из-за автопечати
перенесет его в стандартный вывод
.
sep='|'
fld="[^$sep]*"
fld7=$(yes "$fld$sep" | sed 7q | tr -d '\n')
expr "$str" : "$fld7\(.\)"
Здесь мы создаем команду так, чтобы expr
выполняла свою работу под капотом
.
echo "$ fld"; # => [^ |] *
echo "$ fld7"; # => [^ |] * [^ |] *
.... 7 раз
Я не знаю, поможет ли это вам, но я попробовал Debian (Kali -роллинг )на Tower с Ryzen3 2200. Это работало без проблем.
У меня есть Ideapad 330 с процессором AMD Ryzen 3 2200U. В настоящее время я использую Arch Linux, но пробовал Kali, OpenSUSE, Gentoo, Void, Fedora, lubuntu 18.10 (не работает ), Mageia, Elementary, Solus, CentOS (проблемы с сенсорной панелью ), MX (проблемы с сенсорной панелью ), а LMDE (не работает ).
В заключение, любой linux < 4.19.66, вероятно, не будет работать.
Не знаю, поможет ли это вам, но я тоже испытал то же самое.
В итоге я нашел подходящую версию Linux для своего ноутбука (hp 14 cm 0008au Ryzen 3 2200u ):Manjaro KDE and Pop! ОПЕРАЦИОННЫЕ СИСТЕМЫ; работает без проблем. Я надеюсь это тебе поможет.