использование awk для редактирования файла на основе второго файла

Следующее может предоставить временное решение.

https://github.com/rubo77/set_resolution.py

Перечислите приложения, которые вы хотите масштабировать, и разрешение, до которого вы хотите их масштабировать. При переключении приложений наблюдается задержка примерно на секунду, но это лучшее, что у меня есть, пока разработчики не начнут использовать экраны HiDPi по умолчанию.

0
18.11.2018, 08:20
3 ответа

Следующий 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 ""
}
1
28.01.2020, 02:31

Как насчет этого:

echo 'str' | egrep -o '(F2|F6)....' | egrep -o '....$' | xargs -n2
1
28.01.2020, 02:31

В Perl использование просмотра назад для символов привязки:

$ perl -lne 'print join " ", /(?<=F2|F6)(.{4})/g' file
A309 A313

B309 B313
2
28.01.2020, 02:31

Теги

Похожие вопросы