Список только указателей с xinput

#!/bin/bash
tr -d '[:blank:]' < list.txt > outputFile.tmp

for i in $(cat outputFile.tmp)
do
  echo "seqfile = ${i}_p.phy" >> ${i}_M0.ctl
  echo "treefile = Sametree.txt" >> ${i}_M0.ctl
  echo "outfile = ${i}_M0_mlc" >> ${i}_M0.ctl
  echo "" >> ${i}_M0.ctl
  echo "getSE = 0" >> ${i}_M0.ctl
  echo "RateAncestor = 1" >> ${i}_M0.ctl
  echo "Small_Diff = 5e-7" >> ${i}_M0.ctl
  echo "cleandata = 1" >> ${i}_M0.ctl
  echo "fix_blength = 2" >> ${i}_M0.ctl
  echo "method = 0" >> ${i}_M0.ctl
done
exit 0
1
06.01.2021, 13:17
1 ответ

Я не могу найти ответ в xinputхотя и не потратил много времени (Я предполагаю, что вы смотрели здесь много.

Итак, я выбрал awk, это похоже на простую строку, основанную на проблеме контекста.

xinput list | awk 'BEGIN {is_pt=0}; /Virtual core pointer/ {is_pt=1}; /Virtual core keyboard/ {is_pt=0}; {if (is_pt==1) {print $0}} '

или с лучшим форматированием:

xinput list | awk '
  BEGIN {is_pt=0} 
  /Virtual core pointer/  {is_pt=1} 
  /Virtual core keyboard/ {is_pt=0} 
  { 
    if (is_pt==1) {
      print $0
    }
  }
'

Каждый блок кода({})выполняется, если действующий шаблон совпадает. Есть один блок (с ifв нем, который не имеет исходного шаблона. Он выполняется для каждой строки. $0означает всю текущую запись (строки ). BEGIN— начало файла.

0
18.03.2021, 22:38

Теги

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