2012-03-26 12 views
1

"grep bruno < bash.txt"というコマンドを実行していますが、正しい出力 "bruno"とガベージ "\ f0 \ fs24 \ cf0"が表示されます。Unix grepコマンドがガベージを出力します

私はMac OS X v10.6.8のコマンドシェルにありますが、私は見つかった単語と単語の行を取得する必要があります。ゴミではない。

これが出力されます:

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

「猫の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"しか持っていません。私は手書きで手紙を書いていますが、もし私が "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形式であり、書式設定情報が含まれていることです。テキストエディットでプレーンテキストファイルを作成する場合は、保存する前にメニューの書式>プレーンテキストを作成のメニューオプションを使用します。さらに、テキストエディットをまったく使用しないでください。普通のテキスト編集のためのお気に入りはTextWranglerですが、他にもたくさんのオプションがあります。

関連する問題