Нет необходимости в найти
. Просто используйте оболочку:
for d in */; do [ -f "$d"README ] || printf '%s\n' "$d"; done
c/
Если вам нужно, чтобы она была рекурсивной, вы можете использовать (для bash
, zsh
может сделать это по умолчанию, используйте set -o globstar
в ksh93
):
shopt -s globstar
for d in **/; do [ -f "$d"README ] || printf '%s\n' "$d"; done
(обратите внимание, что точечные файлы по умолчанию исключены).
Utilice {
y }
para recopilar la salida de varios programas. Por ejemplo, { echo one; echo two; } |program
. Deje un espacio después de {
y antes de }
y asegúrese de que haya un punto y coma después del último comando entre llaves.
Yo sugeriría un aquí documento
./my_proc << END_OF_INPUTS
username
phone number
whatever
END_OF_INPUTS
También puedes usar printf y una tubería
printf "%s\n" "username" "number phone" "whatever" |./my_prog