Выберите, используя grep и sed

У вас есть вторая установка libgtk3 в /usr/local/lib, которая несовместима с Nautilus (и, вероятно, другими приложениями GTK из репозитория пакетов). Пожалуйста, удалите эту установку GTK вообще или удалите /usr/local/lib из пути поиска по умолчанию для разделяемых библиотек.

Я рекомендую использовать предыдущий (деинсталляция библиотеки GTK), поскольку, похоже, вы не знаете, как это получилось там, что означает, что у него, вероятно, нет цели (больше):

Перейдите в каталог исходного кода, из которого вы первоначально создали, и установили библиотеку GTK в /usr/local/lib. Он должен содержать файл с именем Makefile или GNUmakefile. Вызовите его процедуру деинсталляции:
sudo make uninstall
-1
задан 15 February 2018 в 11:43

3 ответа

Вы можете сделать это в одной строке:

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
2
ответ дан 22 May 2018 в 13:09

Вы можете сделать это в одной строке:

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
2
ответ дан 17 July 2018 в 21:02

Вы можете сделать это в одной строке:

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
2
ответ дан 23 July 2018 в 21:42

Другие вопросы по тегам:

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