#!/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
Я не могу найти ответ в 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
— начало файла.