С awk:
awk '/bar/ && prev != "" {print FILENAME ": " prev "\n" FILENAME ": " $0}
/foo/ {prev=$0; next}
{prev=""}' file1...
(общие сведения о awk ограничении: остерегайтесь этого, если некоторые имена файлов могут содержать "=" символы, необходимо будет передать их как ./filename
вместо filename
к awk)
make install
перезапишет существующие файлы тем же именем. Кроме этого, это не удалит существующие файлы. GNU coreutils и GNU findutils предназначаются, чтобы использоваться и устанавливаться друг вместе с другом, таким образом, у них нет различных файлов тем же именем. Поэтому при установке их один за другим Вы получите обоих.
Да make install
перезапишет любые существующие ранее файлы, которые являются там, предполагая, что у Вас есть доступ для записи к тому целевому местоположению. Но, учитывая эти пакеты вся часть той же "системы", я был бы склонен думать, что это является модульным по своей природе и что она делает установки в тот же префикс управляемым способом, и ничего не будет перезаписывать, как Вы устанавливаете последующие части.
Мой совет состоял бы в том, чтобы сделать тест сначала для наблюдения то, что будет на самом деле установлено до выполнения так. Можно измениться --prefix
к чему-либо Вам нравится, пока у Вас есть доступ для записи к тому каталогу.
Дополнительно:
Безотносительно причины я рассмотрел бы разветвления установки программного обеспечения как пользовательская "вещь" по сравнению с использованием пакетов. Да можно сделать также, но существуют согласования с выполнением пользовательской установки программного обеспечения по сравнению с использованием запаса от разнообразия полки, которое обеспечивается диспетчером пакетов дистрибутивов.
Пользовательский предоставляет Вам полный контроль, но с ценой необходимости держать его в курсе, и необходимость знать, как создать его и заботиться о нем.
С полки предоставляет Вам удобство, но теперь Вы зависите от кого-то еще для заботы о программном обеспечении, и Вы заблокированы в их расписание.
Выберите мудро!
find
команда для сценария (на самом деле просто-maxdepth опция). Солярис
– BellevueBob
04.10.2013, 01:02