awk может пропустить файлы, которые не существуют, без гонок?

Да, вы используете REST API :

PUT /api/repositories/new-repo-name
{
  "key": "new-repo-name",
  "rclass" : "local",
  "packageType": "generic"
}

Практически все, что вы можете сделать в пользовательском интерфейсе, возможно через REST API, оно довольно обширное. Я столкнулся с очень немногими вещами, которые я не могу так легко автоматизировать.

Вы также можете использовать Artifactory Java client или JFrog Go клиент , которые являются библиотеками для Java и Go (соответственно), которые обертывают API REST. Последнее довольно новое из того, что я могу сказать, и оно может еще не поддерживать все.

6
задан Esteban Küber 19 October 2009 в 02:09
поделиться

5 ответов

Даже засовывая жемчуг или обертку оболочки вокруг Вашего awk сценария, я думаю, там все еще будет состоянием состязания. Например, с помощью в других отношениях прекрасного отрывка оболочки Знатока:

[ -r "$filename" ] && awk -f ... $filename

нет ничего препятствующего тому, чтобы процесс ушел между-r, и время awk находит время для попытки открыть файл...

Единственный ответ, о котором я могу думать, должен использовать LD_PRELOAD для замены системного прослушивания для awk, так, чтобы, если файл отсутствует, дескриптор файла чтения на/dev/null был открыт вместо этого.

Это могло бы работать...

1
ответ дан 17 December 2019 в 04:53
поделиться

Хорошо можно свериться с системным вызовом на содержании ARGV, затем обработайте их через getline.

 if (system("test -r " ARGV[1]) == 0)
   while ( (getline aline < ARGV[1]) >0 )
     # process ARGV[1] via `aline` instead of $0

...

Затем обработайте ARGV[2], и т.д. HTH

1
ответ дан 17 December 2019 в 04:53
поделиться

Это смотрит на меня, что функцией "MISSING_FILES_ARE_FATAL = 0" будет часть следующего выпуска простофили. Посмотрите файл ChangeLog текущего стабильного простофилей исходного кода:

---надрез---

Пятница 22 августа 14:43:49 2008 Arnold D. Robbins

* io.c (nextfile): Users Strong In The Ways Of The Source can use
non-existant files on the command line without it being a fatal error.

---надрез---

http://cvs.savannah.gnu.org/viewvc/gawk-stable/ChangeLog?revision=1.87&root=gawk&view=markup

Hermann

1
ответ дан 17 December 2019 в 04:53
поделиться

В самой прекрасной из традиций я отвечу на Ваш awk вопрос с программой Perl.

#!/usr/bin/perl -w

for my $file (@ARGV) {
    open my $fh, $file or next;
    while(<$fh>) {
        ...do your thing here...
    }
}

(Это не awk, но это - единственное решение без состояния состязания.)

0
ответ дан 17 December 2019 в 04:53
поделиться

О, извините. Игнорируйте мой предыдущий ответ. Вот другое предложение:

cat /proc/[1-9]* 2>/dev/null | awk ....

CAT проглотит все файлы, отсутствуя и существующий подобный, ошибка кошки будет выведена к забвению (недостающий файл является нефатальной ошибкой для кошки), и awk wil смочь обработать результат.

0
ответ дан 17 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

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