2012-03-26 6 views
1

Я выполняю следующую команду «grep bruno < bash.txt», которая дает мне правильный вывод «bruno» и мусор «\ f0 \ fs24 \ cf0».Unix grep команды выходы мусор

Я на командной оболочке на Mac OS X v10.6.8, и я уверен, что я должен получить строку найденного слова и слова. Не мусор.

Это выход:

Mobile-Devs-MacBook-Pro:Screenshots Poupe mdev$ grep bruno < bash.txt 
\f0\fs24 \cf0 bruno\ 

В bash.txt я только написал «Бруно», если я выход с «кошачьей bash.txt» это также дает мне следующий мусор:

Mobile-Devs-MacBook-Pro:Screenshots Poupe mdev$ cat bash.txt 
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 
{\fonttbl\f0\fswiss\fcharset0 Helvetica;} 
{\colortbl;\red255\green255\blue255;} 
\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0 
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural 

\f0\fs24 \cf0 bruno\ 

Если я делаю «echo bruno> bash.txt», а затем «cat bash.txt», он дает мне чистый результат. Почему я не вижу чистый вывод, когда пишу файл вручную?

+0

Как выглядит строка в 'bash.txt'? – chrisaycock

+0

У меня только «bruno». Я написал вручную, и это дает мне мусор, но если я делаю «echo bruno> bash.txt», а затем «cat bash.txt», он показывает мне «bruno» без мусора. Почему вывод только чистый, когда я использую эхо, а не когда я пишу вручную? – bruno

+1

Какой редактор вы использовали для создания 'bash.txt'? Текстовый процессор? – chrisaycock

ответ

2

Ваш файл не является текстовым файлом. Это RTF. grep дает вам строку, содержащую «bruno», наряду с форматированием форматированного текста.

Когда вы делаете:

echo bruno > bash.txt 

bash.txt содержит только "Бруно".

Когда вы редактируете файл вручную, ваш редактор сохраняет как RTF. Вы должны сохранить как обычный текст.

Plain Text

+1

Спасибо человек. Это правильно, я просто не имею эту возможность в своем редакторе. – bruno

+0

Снимок экрана был взят из TextEdit v1.7 (289.3). – Johnsyweb

2

Это не обычный текстовый файл. Это похоже на RTF. Grep только понимает текст, и его задача состоит в том, чтобы выводить всю строку, где найден текст поиска.

Я не могу сказать из вашего форматирования, но я должен поверить, что «мусор», который вы видите, находится на той же строке, что и текст «bruno».

0

Как указывали другие, проблема в том, что файл находится в формате RTF и содержит информацию о форматировании. Если вы хотите создать простой текстовый файл в TextEdit, перед сохранением его используйте пункт меню «Формат»> «Сделать обычный текст». Еще лучше, не используйте TextEdit вообще - мой любимый для обычного редактирования текста - TextWrangler, но есть много других возможностей.