У вас есть вторая установка libgtk3 в /usr/local/lib, которая несовместима с Nautilus (и, вероятно, другими приложениями GTK из репозитория пакетов). Пожалуйста, удалите эту установку GTK вообще или удалите /usr/local/lib из пути поиска по умолчанию для разделяемых библиотек.
Я рекомендую использовать предыдущий (деинсталляция библиотеки GTK), поскольку, похоже, вы не знаете, как это получилось там, что означает, что у него, вероятно, нет цели (больше):
Перейдите в каталог исходного кода, из которого вы первоначально создали, и установили библиотеку GTK в /usr/local/lib. Он должен содержать файл с именем Makefile или GNUmakefile. Вызовите его процедуру деинсталляции:sudo make uninstall
Вы можете сделать это в одной строке:
grep -Po 'siesta: Total = \K.*' "h2.$i.out" >> data.dat
Объяснение:
-P Использовать Perl-совместимое регулярное выражение (PCRE), которое поддерживает гораздо более расширенное сопоставление образцов -o Печатать только соответствующую часть строки (в этом случае просто номер) \K Не учитывать предыдущую как часть соответствия (это функция PCRE.) .* Сопоставьте нуль или более любого символа (кроме новой строки)Чтобы напечатать $i файл в той же строке, что и вывод grep, запустите printf '%s' "$i" >> data.dat перед командой grep. Я предполагаю, что вы запускаете его внутри цикла, так что это будет работать следующим образом:
for i in ...; do
printf '%s' "$i" >> data.dat
grep -Po 'siesta: Total = \K.*' "h2.$i.out" >> data.dat
done
Вы можете сделать это в одной строке:
grep -Po 'siesta: Total = \K.*' "h2.$i.out" >> data.dat
Объяснение:
-P Использовать Perl-совместимое регулярное выражение (PCRE), которое поддерживает гораздо более расширенное сопоставление образцов -o Печатать только соответствующую часть строки (в этом случае просто номер) \K Не учитывать предыдущую как часть соответствия (это функция PCRE.) .* Сопоставьте нуль или более любого символа (кроме новой строки)Чтобы напечатать $i файл в той же строке, что и вывод grep, запустите printf '%s' "$i" >> data.dat перед командой grep. Я предполагаю, что вы запускаете его внутри цикла, так что это будет работать следующим образом:
for i in ...; do
printf '%s' "$i" >> data.dat
grep -Po 'siesta: Total = \K.*' "h2.$i.out" >> data.dat
done
Вы можете сделать это в одной строке:
grep -Po 'siesta: Total = \K.*' "h2.$i.out" >> data.dat
Объяснение:
-P Использовать Perl-совместимое регулярное выражение (PCRE), которое поддерживает гораздо более расширенное сопоставление образцов -o Печатать только соответствующую часть строки (в этом случае просто номер) \K Не учитывать предыдущую как часть соответствия (это функция PCRE.) .* Сопоставьте нуль или более любого символа (кроме новой строки)Чтобы напечатать $i файл в той же строке, что и вывод grep, запустите printf '%s' "$i" >> data.dat перед командой grep. Я предполагаю, что вы запускаете его внутри цикла, так что это будет работать следующим образом:
for i in ...; do
printf '%s' "$i" >> data.dat
grep -Po 'siesta: Total = \K.*' "h2.$i.out" >> data.dat
done