Следующее может предоставить временное решение.
https://github.com/rubo77/set_resolution.py
Перечислите приложения, которые вы хотите масштабировать, и разрешение, до которого вы хотите их масштабировать. При переключении приложений наблюдается задержка примерно на секунду, но это лучшее, что у меня есть, пока разработчики не начнут использовать экраны HiDPi по умолчанию.
Следующий awk-скрипт примерно соответствует вашим требованиям:
{
for(i=1;i<=NF;i++) {
if (match($i, "F2....$") > 0) {
printf "%s ", substr($i, RSTART + 2, 4);
}
if (match($i, "F6....$") > 0) {
printf "% s", substr($i, RSTART + 2, 4);
}
}
print ""
}
Он перебирает каждую строку, затем перебирает каждое поле этой строки. Для каждого элемента, если в конце элемента есть «F2», за которым следуют 4 символа, выведите эти 4 символа, за которыми следует пробел. После завершения цикла по строке напечатайте возврат каретки.
Результат, основанный на вашем вводе::
A309 A314
B309 B315
Обновленная версия awk-скрипта для обработки элементов, существующих где-либо в пределах их поля, нуждается только в удалении привязки $
:
{
for(i=1;i<=NF;i++) {
if (match($i, "F2....") > 0) {
printf "%s ", substr($i, RSTART + 2, 4);
}
if (match($i, "F6....") > 0) {
printf "% s", substr($i, RSTART + 2, 4);
}
}
print ""
}
Как насчет этого:
echo 'str' | egrep -o '(F2|F6)....' | egrep -o '....$' | xargs -n2
В Perl использование просмотра назад для символов привязки:
$ perl -lne 'print join " ", /(?<=F2|F6)(.{4})/g' file
A309 A313
B309 B313