Как транслировать в и из dos2unix на Mac - PullRequest
1 голос
/ 05 марта 2019

Ниже "один вкладыш" объясняет, что я пытаюсь сделать:

pbpaste > ~/Documents/convertme.txt; \
dos2unix -c mac ~/Documents/convertme.txt && \
cat ~/Documents/convertme.txt | pbcopy && \
rm -vfr ~/Documents/convertme.txt

Мне не нравится создавать временный файл, я бы предпочел, чтобы все обрабатывалось в памяти через всю систему ввода / вывода.

Что-то вроде:

pbpaste | dos2unix -c mac -n /dev/stdin /dev/stdout | pbcopy

Что не работает, это ошибки: dos2unix: Skipping /dev/stdin, output file /dev/stdout is a symbolic link.

Единственное другое решение, о котором я подумал, - это, возможно, создание сценария оболочки для обработки этого с переменными ... но я подумал, что могу спросить здесь, потому что я решил, что все еще может быть способ передать и выйти из dos2unix.

Я искал во всем StackOverflow и не могу найти повторяющийся вопрос, однако я уверен, что есть команда, похожая на dos2unix, для которой кто-то разработал этот поток. Если это так, я приму ответ с этой ссылкой, но, пожалуйста, также перепишите ответ с dos2unix, записанным в соответствующей пипетированной команде (для будущих читателей и таких, как я, которые не могут найти этот индекс в Google).

1 Ответ

2 голосов
/ 07 марта 2019

Если вы не укажете имена файлов ввода / вывода, dos2unix будет принимать ввод из stdin и записывать в stdout.

pbpaste | dos2unix -c mac | pbcopy
  1. pbpaste берет содержимое буфера обмена и отправляет его в stdin
  2. dos2unix конвертирует dos eol's в unix (или в данном случае mac).Если вы не упомянули имя файла в качестве входного, это займет стандартный ввод.
  3. pbcopy берет стандартный вывод и помещает его в буфер обмена.
...