Самый простой способ убрать символ новой строки из строки ввода в монтажном столе - PullRequest
55 голосов
/ 14 августа 2010

Надеюсь, довольно просто, чтобы объяснить случай использования, когда я запускаю следующую команду (OS X 10.6):

$ pwd | pbcopy

монтажная доска содержит символ новой строки в конце. Я бы хотел избавиться от этого.

Ответы [ 4 ]

84 голосов
/ 14 августа 2010

pwd | tr -d '\n' | pbcopy

31 голосов
/ 14 августа 2010
printf $(pwd) | pbcopy

или

echo -n $(pwd) | pbcopy

Обратите внимание, что они действительно должны быть заключены в кавычки, если в имени каталога есть пробельные символы. Например:

echo -n "$(pwd)" | pbcopy
7 голосов
/ 08 октября 2013

Я написал утилиту под названием noeol для решения этой проблемы.Он передает стандартный ввод в стандартный вывод, но пропускает завершающий символ новой строки, если он есть.Например,

pwd | noeol | pbcopy

... Я присвоил псевдоним copy к noeol | pbcopy.

Проверьте это здесь: https://github.com/Sidnicious/noeol

0 голосов
/ 24 января 2019

У меня были проблемы с подходом tr -d '\n'.На OSX я установил пакет coreutils через brew install coreutils.Это обеспечивает все «обычные» утилиты GNU с префиксом g перед их типичными именами.Так, например, head будет ghead.

Использование этого сработало более безопасно IMO:

pwd | ghead -c -1 | pbcopy

Вы можете использовать od, чтобы увидеть, что происходит с выводом:

$ pwd | ghead -c -1 | /usr/bin/od -h
0000000      552f    6573    7372    732f    696d    676e    6c6f    6c65
0000020      696c
0000022

против

$ pwd | /usr/bin/od -h
0000000      552f    6573    7372    732f    696d    676e    6c6f    6c65
0000020      696c    000a
0000023

Разница?

00 и 0a - это шестнадцатеричные коды для nul и новой строки.ghead -c -1 просто «разбивает» последний символ из вывода перед передачей его на | pbcopy.

$ man ascii | grep -E '\b00\b|\b0a\b'
     00 nul   01 soh   02 stx   03 etx   04 eot   05 enq   06 ack   07 bel
     08 bs    09 ht    0a nl    0b vt    0c np    0d cr    0e so    0f si
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...