Распечатайте определенную часть на выходе

Вы можете unistall текущую среду рабочего окружения единицу и установить среду рабочего стола LXDE.

Как полностью удалить GNOME? поможет вам удалить текущую среду рабочего стола.

Затем введите следующую команду: lud: sudo apt-get install lxde

Это даст вам среду рабочего стола, похожую на рабочую среду lubuntu.

для получения дополнительной информации , см. Как полностью удалить GNOME?

1
задан 25 December 2015 в 13:57

5 ответов

Вы можете сделать это с помощью одной команды grep:

grep -Po '^CONFIG_ARCH_DEFCONFIG="\K[^"]*' /boot/config-3.19.0-32-generic

Или (немного длиннее и более convulted):

grep -Po '^CONFIG_ARCH_DEFCONFIG="\K.*?(?=")' /boot/config-3.19.0-32-generic
-P: сообщает grep интерпретировать шаблон как PCRE (регулярное выражение Perl Compatible Regular Expression); -o: говорит grep печатать только совпадение; ^CONFIG_ARCH_DEFCONFIG=": соответствует строке CONFIG_ARCH_DEFCONFIG=" в начале строки; \K: отбрасывает ранее подобранную подстроку;

# 1:

-P: сообщает grep интерпретировать шаблон как PCRE (регулярное выражение Perl Compatible Regular Expression);

# 2:

.*?: соответствует любому количеству символов (лениво); -o: указывает grep на печать только совпадения;
% grep -Po '^CONFIG_ARCH_DEFCONFIG="\K[^"]*' /boot/config-4.2.0-16-generic
arch/x86/configs/x86_64_defconfig
% grep -Po '^CONFIG_ARCH_DEFCONFIG="\K.*?(?=")' /boot/config-4.2.0-16-generic
arch/x86/configs/x86_64_defconfig
11
ответ дан 23 May 2018 в 14:48
  • 1
    Мне нравится учиться более чем одному способу достичь тех же результатов. Отличный ответ! знак равно – Terrance 27 December 2015 в 06:07
  • 2
    @Terrance Спасибо! – kos 27 December 2015 в 17:11

Существует много способов скрыть эту кошку, вот путь sed:

sed -nr 's/^CONFIG_ARCH_DEFCONFIG="([^"]+)"$/\1/p' /boot/config-3.19.0-32-generic

Здесь мы сопоставляем строку и захватываем желаемую часть, то есть часть в двойных кавычках (([^"]+)), а затем заменить всю строку на захваченную группу (\1).

Пример:

% sed -nr 's/^CONFIG_ARCH_DEFCONFIG="([^"]+)"$/\1/p' /boot/config-3.13.0-32-generic
arch/x86/configs/x86_64_defconfig
10
ответ дан 23 May 2018 в 14:48

Что, нет perl?

grep CONFIG_ARCH_DEFCONFIG /boot/config-3.19.0-32-generic | 
    perl -pe 's/.*?"([^"]*).*/$1/'

perl будет -p rint каждую строку после применения сценария, заданного -e. [F7] заменит foo на bar. Шаблоны в скобках «захватываются» и могут называться $1, $2 ... $N, где $1 - это первый захваченный образец, $2 второй и т. Д. Регулярное выражение будет искать все до первой цитаты (.*?"), затем запишите 0 или более символов не " ([^"]*), а затем все остальное. Все это заменяется захваченным рисунком.

Вы также можете оставить шаблон, соответствующий perl:

perl -ne 's/.*CONFIG_ARCH_DEFCONFIG="([^"]*).*/$1/ && print' /boot/config-3.19.0-32-generic
10
ответ дан 23 May 2018 в 14:48
  • 1
    Я знал, что вы в какой-то момент присоединитесь: P +1 – heemayl 25 December 2015 в 18:25
  • 2
    то я бы создал код python .. – Avinash Raj 26 December 2015 в 09:57
  • 3
    [F1] – Avinash Raj 26 December 2015 в 09:59
  • 4
    @AvinashRaj хорошие вещи, позаботьтесь о том, чтобы отправить это, пожалуйста? Я также разместил сообщение с регулярным выражением. – Sergiy Kolodyazhnyy 22 January 2016 в 06:29

Вот комбинация grep и cut, которая выполняет ту же работу.

$ grep "CONFIG_ARCH_DEFCONFIG" /boot/config-3.19.0-32-generic | cut -d"\"" -f2                                                
arch/x86/configs/x86_64_defconfig

Объяснение:

grep "CONFIG_ARCH_DEFCONFIG" /boot/config-3.19.0-32-generic - это часть, которая находит строку в стандартном синтаксисе grep: grep [OPTIONS] PATTERN [FILE...]. Выход идет через трубу на следующий этап cut -d"\"" -f2. В этой части используется обрезанный текст обрезки, разделенный конкретным разделителем (который указан флагом -d). Нам нужно избегать двойной котировки с обратной косой чертой, так что оболочка позволяет принимать двойную кавычку как одну из опций команды cut, а не вводить ее в оболочку. Теперь cut будет обрабатывать вывод из grep как разделенный " и разбиваться на три столбца, CONFIG_ARCH_DEFCONFIG, arch/x86/configs/x86_64_defconfig и пустое пространство. Нужная строка - это второй столбец, что означает, что нам нужно использовать флаг -f2.
8
ответ дан 23 May 2018 в 14:48

Поскольку я в настоящее время изучаю python, вот версия, использующая именно это.

#!/usr/bin/env python
import re

reg = re.compile('CONFIG_ARCH_DEFCONFIG')

with open("/boot/config-3.19.0-32-generic") as file :
   for line in file:
       if reg.match(line):
           print line.split('"')[1]

Пример прогона:

DIR:/TECH-BOOKS
skolodya@ubuntu:$ ./extractString.py                                           
arch/x86/configs/x86_64_defconfig

DIR:/TECH-BOOKS
skolodya@ubuntu:$ cat ./extractString.py                                       
#!/usr/bin/env python
import re

reg = re.compile('CONFIG_ARCH_DEFCONFIG')

with open("/boot/config-3.19.0-32-generic") as file :
   for line in file:
       if reg.match(line):
           print line.split('"')[1]
3
ответ дан 23 May 2018 в 14:48
  • 1
    отступ очень важен в python .. – Avinash Raj 22 January 2016 в 06:36
  • 2
    Вам не нужно искать regexd, просто используйте мой, т. Е. [F1], потому что re.match намного медленнее, чем startswith – Avinash Raj 22 January 2016 в 06:37

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

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