2016-04-01 5 views
0

私はUnixの新機能です。unixを使用してドル記号で始まる特定の文字列を含む行を削除します。

次の行を含むパラメータファイルParameter.prmがあります。

$$ErrorTable1=ErrorTable1 
$$Filename1_New=FileNew.txt 
$$Filename1_Old=FileOld.txt 
$$ErrorTable2=ErrorTable2 
$$Filename2_New=FileNew.txt 
$$Filename2_Old=FileOld.txt 
$$ErrorTable3=ErrorTable3 
$$Filename3_New=FileNew.txt 
$$Filename3_Old=FileOld.txt 

が、私は基本的に

$$ErrorTable1=ErrorTable1 
$$ErrorTable2=ErrorTable2 
$$ErrorTable3=ErrorTable3 

として出力を取得したい、私は$$Filenameで始まる行を削除する必要があります。

$はキーワードであるため、文字列として解釈できません。どうすればsedを使ってこれを達成できますか?パターン検索に基づいて、テキストファイルから情報を抽出

答えて

0


正規表現は、正規表現言語で特別な意味を持つ文字を検索する必要がある場合だけで、あなたの質問に答えるために、あなたがそれらをエスケープする必要があります

$ sed '/$$Filename/d' infile 
$$ErrorTable1=ErrorTable1 
$$ErrorTable2=ErrorTable2 
$$ErrorTable3=ErrorTable3 

/$$Filename/部分はアドレスです。つまり、これに一致するすべての行について、それに続くコマンドが実行されます。コマンドはdで、行が削除されます。一致しない行はそのまま印刷されます。

0

grepための仕事です:

grep ErrorTable file 

あるいは

grep -F '$$ErrorTable' file 

-Fの代わりに固定文字列として検索用語を治療するためのグレップを伝えます正規表現。 sedので

grep '\$\$ErrorTable' file 
+0

ありがとうございました!しかし、 '$$ Filename'だけを削除する必要がありました。文字列として '$ 'を識別するためのパターンが必要でした。私はコード 'sed"/\ $ \ $ Filename/d "' – Arkade

+0

を 'grep -Fv '$$ Filename' file'を使って使用しました。 '-v'はマッチを否定します – hek2mgl

関連する問題