Скажем, у меня есть list.txt
файлов, которые я хочу проверить.
cat list.txt
и для каждого файла я хочу выполнить действие
cat list.txt | xargs -I {} touch {}
Но в зависимости от исхода акции я хочу соответственно отреагировать:
cat list.txt | xargs -I {} touch {} | if [-z - ]; then echo "blank file"; fi;
Это не работает должным образом, и я не уверен, почему нет ...
Итак, как я могу правильно протестировать значение stdout
-? - и, в качестве бонуса, как передать содержимое {}
в последнюю часть? Для эффекта:
cat list.txt | xargs -I {} touch {} | if [-z - ]; then echo "{} is a blank file"; fi;
Возможно, это должен быть полный сценарий bash, но я бы предпочел, если бы я мог научиться делать это в одну строку, поскольку приложения для этого могут быть полезны во многих отношениях -
Вот более практичный пример:
time john -incremental -stdout | grep 'clientsWeakPassword' | if [ ! -z - ]; then exit 0;
Таким образом, этот сценарий будет случайным образом генерировать пароли и останавливаться при попадании на указанный пароль, отображая количество времени, которое потребовалось для «взлома» этого пароля ...
И в идеале, это также вывело бы что-то вроде: "clientsWeakPassword" потребовал Xminutes для взлома с использованием случайного угадывания "-
Но эту цепочку также можно использовать для проверки определенной вещи в файлах журналов и т.д. И т.д. И т. П.
Во всяком случае, я надеюсь, что кто-то может направить меня в правильном направлении.
Большое спасибо -