Перенаправить стандартный вывод в редактор буфера перед передачей другим командам

Я пытаюсь очистить свой локальный набор веток git. Их довольно много, и я не хочу делать git branch -D branchname для них всех. Также нет шаблона, который захватывал бы всех и только тех, кого я хочу убить. Затем я вспомнил, что однажды видел, как кто-то направляет stdout в редактор буферов, и подумал, что это звучит идеально.

Я хотел бы взять вывод git branch -l, передать его в nano, отредактировать буфер, а затем (после выхода из nano) предоставить окончательный буфер в качестве входных данных для другой команды (в частности, xargs git branch -D).

Поигравшись какое-то время безуспешно, этот вопрос превратился в академический вопрос, связанный с редактированием буферов на лету, поэтому, никаких решений, специфичных для git, пожалуйста. Я хочу знать, как редактировать буферы «на лету» в однострочниках bash, потому что это похоже на баш-фу, способное возвысить меня до божественного уровня. Приемлемые ответы также должны работать, когда они зажаты между, например. find и операции с файлами или путями (например, rm, cat или grep).


person Tom    schedule 15.01.2014    source источник


Ответы (1)


Точка с запятой — вполне приемлемый оператор.

git branch -l > /tmp/branches; nano /tmp/branches; whatever /tmp/branches; rm /tmp/branches
person phs    schedule 15.01.2014
comment
Это сработало: git branch -l > /tmp/branches; nano /tmp/branches; cat /tmp/branches | xargs git branch -D; rm /tmp/branches; Я все еще надеюсь найти версию, которая не создает файлы, которые нужно очистить, но если ничего не предвидится, я отмечу это как ответ. Спасибо! - person Tom; 16.01.2014