Передача по каналу команд, измените запись stdin к stdout

если Ваши машины UNIX-base такой как linux можно использовать NFS (Network File Sharing) протокол. Этот протокол имеет /etc/exports быть помещает, Вы определяете общий каталог, и можно соединиться с сервером с mount -t nfs. Например:

/home/mohsen/diff  10.0.0.2(rw,sync,subtree_check) localhost(rw,sync,subtree_check)

Выше строки определите каталог в /etc/exports и совместно используйте его между этим компьютером и 10.0.0.2 и localhost как клиент для чтения и записи.

Примечание: каждая строка для одного dir.

 mount -t nfs localhost:/home/mohsen/diff ./x
8
19.04.2014, 22:11
3 ответа

moreutils для этого есть отличная команда, которая называется vipe . На странице руководства:

SYNOPSIS
       command1 | vipe | command2

DESCRIPTION
       vipe allows you to run your editor in the middle of a unix pipeline and
       edit the data that is being piped between programs. Your editor will have
       the full data being piped from command1 loaded into it, and when you close
       it, that data will be piped into command2.

По умолчанию будет использоваться команда editor , которая обычно является просто символической ссылкой на редактор командной строки по умолчанию. Вы можете изменить это, изменив ссылку (используйте update-alternatives в системах на основе Debian) или используя переменную среды EDITOR . Например, вы можете сделать:

echo Hello World | EDITOR=nano vipe | less

В противном случае, если конкретный текстовый редактор не поддерживает такого рода вещи, я думаю, вы застряли в ручном создании временного файла, записи файла в него, запуске редактора, вводе файл в остальную часть конвейера и удаление временного файла. Обо всем этом позаботится в основном команда vipe . Это хорошо, но по умолчанию команда редко доступна.

11
27.01.2020, 20:10

Если все, что вы хотите, это заменить «Hello» с «до свидания» (или любая другая замена слов), вы можете избежать ручного редактирования в редакторе в пользу автоматического поиска и замените инструмент. Например, «SED» может делать такие замены, как это:

echo Hello World | sed 's/Hello/Goodbye/' | less

Проверьте «Man Sed» для более подробной информации.

1
27.01.2020, 20:10

Текстовый редактор Джо (также известный как Собственный редактор Джо) делает то, что вы хотите.

Команда повторяет "hello world" | joe - | less работает, как и ожидалось, хотя по каким-то причинам нуждается в кавычках.

Некоторые команды (например, gpg) выдают вывод, который не входит в трубу. Это повреждает начальное отображение внутри joe, но нажатие ctrl+r -- refresh -- приведет к очистке.

1
27.01.2020, 20:10

Теги

Похожие вопросы