Диспетчер файлов> Изменить> Настройки> Поведение для исполняемых текстовых файлов. В Ubuntu он установлен для просмотра исполняемых файлов, когда они открыты
Я предпочитаю, чтобы он задавал «Спросить каждый раз», как предыдущая версия ubuntu.
С помощью sed для печати определенных строк проще использовать опцию -n и p:
sed -rn '/IDno=|Type=Student/p'
Или:
sed -n -e '/IDno=/p' -e '/Type=Student/p'
[d2 ] Параметр -n подавляет вывод, если явно не печатается. Команда p, конечно, печатает соответствующие строки. awk -F= '$1=="IDno" || $0=="Type=Student"'
perl: печать строк, которые запускаются с IDno, затем =, или начните с Type, а затем = и закончите в Student: perl -ne 'print if /^(IDno=|Type=Student$)/'
Пример:
% cat file.txt
IDno="1"
Name=Jack
Type=Student
IDno="2"
Name=Jill
Type=Teacher
% awk -F= '$1=="IDno" || $0=="Type=Student"' file.txt
IDno="1"
Type=Student
IDno="2"
% perl -ne 'print if /^(IDno=|Type=Student$)/' file.txt
IDno="1"
Type=Student
IDno="2"
Первоначальный вопрос, кажется, просит «извлечь все IDno и тип только тогда, когда type is student». Но результат вывода возвращает все строки IDno =, поэтому это довольно противоречиво ...
Вот ответ, который возвращает только идентификаторы и типы Type, когда Type = Student.
sed -n 'N;N;/IDno=.*Type=Student/p' filename | grep -v "^Name="
Немного объяснения:
-n, --quiet, --silent подавляет автоматическую печать пространства с образцом N;N;. Прочитайте / добавьте следующую строку ввода в пространство шаблонов. (дважды) /IDno=.*Type=Student/p find & amp; print from IDno = to Type = Student | grep -v "^Name=" не показывает строку Name =Мне не нравится sed | grep, но не слишком уверен, как заставить sed повторно искать его вывод , и труба обычно говорит: «Возьмите этот вывод и сделайте что-нибудь» ... Могли бы сделать grep | sed too
grep -v "^Name=" t | sed -n 'N;N;/IDno=.*Type=Student/p'