2012-03-26 9 views
1

Ich führe den folgenden Befehl "grep bruno < bash.txt", die mir die richtige Ausgabe "bruno" und Müll "\ f0 \ fs24 \ cf0" gibt.Unix grep Befehl Ausgaben Müll

Ich bin auf der Kommandozeile auf einem Mac OS X 10.6.8 und ich bin ziemlich sicher, dass ich die Zeile des gefundenen Wortes und des Wortes bekommen sollte. Kein Müll.

Dies ist der Ausgang:

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

In bash.txt ich habe nur geschrieben "bruno", wenn i-Ausgang mit "cat bash.txt" es gibt mir auch den folgenden Müll:

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\ 

Wenn ich "echo bruno> bash.txt" und dann "cat bash.txt" mache, gibt es mir eine saubere Ausgabe. Warum sehe ich keine saubere Ausgabe, wenn ich die Datei manuell schreibe?

+0

Wie sieht die Zeile in 'bash.txt' aus? – chrisaycock

+0

ich habe nur "bruno". Ich schrieb von Hand und es gibt mir Müll, aber wenn ich "echo bruno> bash.txt" und dann "cat bash.txt" mache, zeigt es mir "bruno" ohne Müll. Warum ist die Ausgabe nur sauber wenn ich Echo benutze und nicht wenn ich manuell schreibe? – bruno

+1

Welchen Editor haben Sie benutzt, um 'bash.txt' zu erstellen? Ein Textverarbeitungsprogramm? – chrisaycock

Antwort

2

Ihre Datei ist keine einfache Textdatei. Es ist RTF. grep gibt Ihnen die Zeile, die "bruno" enthält, zusammen mit der Rich-Text-Formatierung.

Wenn Sie das tun:

echo bruno > bash.txt 

bash.txt enthält nur "bruno".

Wenn Sie "die Datei von Hand bearbeiten", speichert Ihr Editor als RTF. Sie müssen als einfachen Text speichern.

Plain Text

+1

Danke Mann. Das ist richtig, ich habe diese Option in meinem Editor nicht. – bruno

+0

Der Screenshot stammt aus TextEdit v1.7 (289.3). – Johnsyweb

2

Das ist nicht eine einfache Textdatei ist. Das sieht wie ein RTF aus. Grep versteht nur Text und seine Aufgabe besteht darin, die gesamte Zeile auszugeben, in der der Suchtext gefunden wird.

Ich kann nicht von Ihrer Formatierung unterscheiden, aber ich muss glauben, dass der "Müll", den Sie sehen, in der gleichen Linie wie der "bruno" Text ist.

0

Wie andere darauf hingewiesen haben, liegt das Problem darin, dass die Datei im RTF-Format vorliegt und Formatierungsinformationen enthält. Wenn Sie in TextEdit eine einfache Textdatei erstellen möchten, verwenden Sie vor dem Speichern die Menüoption Format> Make Plain Text. Besser noch, benutze kein TextEdit - mein Favorit für die reine Textbearbeitung ist TextWrangler, aber es gibt viele andere Optionen.