Я бы предложил что-то вроде
awk 'BEGIN {OFS=FS=","}
/201/ {
if (match($0,"certain phrase")) {
print $1, $2, substr($0,RSTART,RLENGTH+1)
} else {
print $1, $2, "NULL"
}
}' file
Тестирование с вашими входными данными:
$ awk 'BEGIN {OFS=FS=","}
> /201/ {
> if (match($0,"certain phrase")) {
> print $1, $2, substr($0,RSTART,RLENGTH+1)
> } else {
> print $1, $2, "NULL"
> }
> }' file
20170101,05:00 AM,certain phrase1
20170102,09:30 AM,certain phrase2
20170103,05:30 AM,NULL
echo $PATH | perl -pe 's/:/\n/g' | xargs ls -1 | sort
Список всех (для меня 1103) установленных команд на вашем пути. Обратите внимание, что в одном приложении может быть много команд, и некоторые команды по умолчанию отсутствуют на вашем пути.
apt list --installed
перечислит установленные (556 для меня) пакеты. Обратите внимание, что один пакет может иметь много приложений или может иметь только библиотеки и ни одного приложения.
apt list
Список всех (52 254 для меня) устанавливаемых пакетов из репозиториев по умолчанию.
cat /etc/apt/sources.list && cat /etc/apt/sources.list.d/*.list
Список всех (для меня 16) установленных репозиториев.
curl 'https://launchpad.net/ubuntu/+ppas?name_filter=&start=0' | grep -A 1 "<td><a"
Будет перечислять (выгруженные) все (24 538) Персональные архивы пакетов (репозитории), большинство из которых, вероятно, не будут работать на архитектуре c2. Обратите внимание, что программное обеспечение также можно получить в другом месте, но если вы установите пакет из внешнего источника, который не предоставляет репозиторий, тогда apt не сможет обновить пакет.
В дополнение к классическому / etc / apt /sources.list
, он также будет читать все файлы, установленные в
/etc/apt/sources.list.d/*
, они работают одинаково, но, имея несколько файлов, управление становится проще (автоматическое редактирование файла конфигурации не требуется).
/etc/apt/sources.list
перечисляет источники пакетов , то есть сайты, с которых загружаются пакеты. Он не перечисляет отдельные пакеты.
Ubuntu сама распространяет множество программного обеспечения. Пока он с открытым исходным кодом, не содержит ужасных ошибок и активно поддерживается, он имеет право быть в Ubuntu (по крайней мере, в репозитории «вселенной» , который распространяет больше всего Пакеты Debian ). (Это необязательные условия, но они являются наиболее частым случаем.) На самом деле это может быть, а может и не быть в Ubuntu: другим критерием является то, что должен быть доброволец для работы над этим пакетом (если только он не является частью небольшого ядра, которое Canonical заплатит кому-нибудь за работу). Такие пакеты, как okular и git , являются частью Ubuntu (Universe и main соответственно). Таким образом, соответствующая строка в sources.list
является одной из строк с archive.ubuntu.com
.
Вы можете получить информацию о пакетах Ubuntu в Интернете на сайте http://packages.ubuntu.com/ или на своем компьютере с помощью программного пакета APT . Запустите apt-cache show PACKAGE
, чтобы получить информацию о PACKAGE
(независимо от того, установлен он или нет).Запустите apt-cache policy PACKAGE
, чтобы увидеть сводку установленных и доступных версий пакета. Запустите apt-cache search FOO
для поиска пакетов, описание которых содержит FOO
.
Выполнение apt-get update
обновляет локальную копию списка доступных пакетов, которые запрашивает apt-cache
. Ubuntu устанавливает ежедневную работу для этого, поэтому, если ваш компьютер подключен к Интернету, на вашем компьютере будет почти последняя версия (но все же рекомендуется запускать ее вручную непосредственно перед установкой или обновлением пакетов) . apt-get update
не вносит никаких изменений в программное обеспечение, установленное на вашем компьютере. Выполнение apt-get upgrade
(или одного из вариантов XXX -upgrade
) обновляет установленные пакеты до последней подходящей версии в соответствии с локальной копией списков пакетов.
Версия, поставляемая Ubuntu, может быть не последней версией, доступной от исходного разработчика. Ubuntu компилирует все программы из исходного кода (за исключением нескольких программ с открытым исходным кодом), проверяет их, находятся ли они в основном (а не во вселенной), и выпускает выпуск каждые 6 месяцев, так что обычно вы заканчиваете с программным обеспечением возрастом от 3 до 9 месяцев. Обычно это не проблема, так как последняя, непроверенная версия программы требуется довольно редко. Критические ошибки, такие как проблемы безопасности, получают быстрые обновления вне цикла выпуска (они переносятся обратно, то есть исправление применяется к версии, которая была выпущена, а не немедленно отправляет последнюю версию).Если вам абсолютно необходима последняя версия, вы можете поискать PPA (источник дополнительных пакетов, который не поддерживается Ubuntu, качество варьируется) или попробовать последнюю версию из Debian unstable ] или перекомпилируйте исходный код основной ветки разработки - но, опять же, большинству людей это не нужно.