Патч на стандартный вывод с заменой процесса
Я пытаюсь сделать что-то вроде:
patch <( zcat data.201301.gz ) patch_file.diff -o /dev/stdout
результат, который я получаю:
File /dev/fd/63 is not a regular file -- refusing to patch
4504 out of 4504 hunks ignored -- saving rejects to file /dev/stdout.rej
Как я могу создать пропатченный файл с заменой процесса?
2 ответа
Глядя на исходный код патча, это не представляется возможным.
Файл для исправления должен быть стандартным файлом, любые другие типы файлов отклоняются.
К сожалению, символические ссылки, каналы, дескрипторы и т. Д. Не работают.
Чтобы обработать возможные символические ссылки внутри скриптов, это помогает:
patch -o "$out" "$(readlink "$in")" "$diff"