Решение
p4 opened -c 999 | sed -e 's/#.*//' | p4 -x - diff
Объяснение
p4 -x
дает вам xargs
подобную способность без необходимости использования xargs
. От p4 help utils
:
Флаг -x указывает p4 читать аргументы, по одному на строку, из
указанный файл. Если вы укажете «-», стандартный ввод будет считан.
Таким образом, вы можете просто "взять вывод p4 open -c 999 и передать его в p4 diff", как предложено в вопросе. Одна сложная часть заключается в том, что вывод p4 opened
содержит номера ревизий и пояснительный текст после имени каждого открытого файла, например
//depot/example#123 - edit change 999 (text) by day@office
//depot/new-example#1 - add change 999 (text) by day@office
Но мы можем запустить это через простой sed -e 's/#.*//'
, чтобы убрать все, начиная с #
, и оставить только пути:
//depot/example
//depot/new-example
, который затем может быть использован со стандартного входа и подан на p4 diff
благодаря p4 -x -
.
Если у вас есть #
в именах любых файлов, вам нужно стать более умным с помощью команды sed
. И обратиться к психиатру.