xwininfo -root -children | grep -q '"Firefox")'
echo "$(($? == 0))"
Произвел бы 1, если существует окно класса Firefox
подключенный к Вашему X-серверу (любым пользователем от любой машины).
Ограничить Firefox обрабатывает локальный для машины, куда Вы выполняете ту команду:
xwininfo -root -children |
awk '/"Firefox"\)/{print $1}' |
xargs -I% xprop -id % WM_CLIENT_MACHINE |
cut -d\" -f2 |
grep -qFx "$(uname -n)"
Поиск именем процесса не дает Вам гарантии, что процессы на самом деле отображают свое окно на Вашем X-сервере.
Метод, описанный выше, согласовывается с тем, как Firefox проверяет на в настоящее время под управлением Firefox при отсутствии передачи --no-remote
опция.
Для ответа на одну часть вопроса можно использовать grep с флагом -F для сравнения разницы между двумя файлами. Затем я объединил это с -v, чтобы убрать разницу за то, что мне нужно;
grep -vxFf $TMPFILE001 $TMPFILE002 > $TMPFILE003
Посмотрите на команду comm
. Возьмите следующие два файла
f1.txt
item1
item2
item3
item4
item5
item6
f2.txt
item1
item2
item22
item3
item4
Output
$ comm -23 f1.txt f2.txt
item5
item6
Или, если вы предпочитаете, вы можете сделать это:
diff file1 file2 | grep "<" | sed 's/^<\ //g' > file3