2013-04-04 1 views
2

друзья, коллеги, GLib приверженцев преувеличений-к-знать, и почитал коллега жертв самого унизительных профессий,В Mac OSX Lion, как заменить несколько пробелов на одно пространство с помощью sed?

Я страдаю от этой своеобразной усталости один получает при попытке сделать простые UNIXy вещей в Max OSX. Может кто-нибудь сказать мне, как использовать СЭД (не AWK, а не Perl, а не что-нибудь, кроме SED) принять file.txt содержащий эту:

Oh   my I   have Mac     fatigue 

и сделать его выглядеть следующим образом:

Oh my I have Mac fatigue 

Спасибо вы очень сильно, если на самом деле это сделаете в Mac OSX Lion. (изменить: not Mountain Lion, либо, другая ОС). Я просто потратил много времени на работу в Googling, которые отвечают за Linux или UNIX в целом, это не очень помогает печально.

Я попробовал несколько вещей из блаженных, давно забытых дней стандартного соответствия шаблону, когда можно было сгребать команды UNIXy и вот! они вели бы себя:

cat file.txt | sed 's/ */ /g'  - O h m y I h a v e M a c f a t i g u e 
cat file.txt | sed 's/ \+/ /g'  - no effect 
cat file.txt | sed 's/\s\+/ /g'  - no effect 
cat file.txt | sed -E -e 's/ */ /g' - O h m y I h a v e M a c f a t i g u e 

указал мне использовать СЭД на Linux машине заставит меня улыбнуться, но она не получит upvote :) Заранее спасибо. Не уверен, что бы я делал без StackOverflow.

+1

Возможно, стоит проверить также на вкладки? – Eddie

+0

Я сделал это, спасибо. Файл, который я действительно пытаюсь обработать, имеет только пробелы, никаких вкладок. Спасибо, однако, за эту мысль. – noogrub

ответ

5

Это работает (проверено на складе OS X 10.8.3):

cat file.txt | sed -e "s/ */ /g" 

(обратите внимание, что есть два пространства перед звездочкой)

или избавиться от useless use of cat:

sed -e "s/ */ /g" < file.txt 
+0

Оба из них возвращают одиночные пробелы равномерно между всеми буквами в Lion. У меня Mac OSX 10.7.5 Lion, а не Mountain Lion. Спасибо за быстрый ответ, но, к сожалению, неправильно для моей ОС. – noogrub

+0

Привет, наверх. Вы говорите, что это работает на вашей установке Льва? 10,7? Или вы голосуете за ответ на Mountain Lion, 10.8? Благодарю. – noogrub

+0

Прочтите ссылку UUOC. Лол спасибо. Тем не менее, он игнорирует то, как это происходит иногда, когда я фактически собирал файлы, а затем частично поддерживал его, чтобы передать sed, когда понял, что некоторые из файлов, которые были сдвинуты вместе, имели несколько пробелов между столбцами. Лень машинистки в командной строке - моя единственная защита. :) отличная ссылка – noogrub