2017-01-20 1 views
1

テキストファイル内の文字列を見つけ、それを含む行を削除してファイルを保存する必要があります。文字列は、行ごとに1つずつ、数百の異なる文字列を含む別のテキストファイルで見つけられます(読み取られます)。プロセスは、ファイル内の最初の文字列から最後の文字列に進むことです。SEDまたは他のエディタ - Windows上のファイルから文字列を削除する

(うまくいけば使いやすい)テキストエディタ(Windows OS)をお勧めしますか?課題を達成する。

私は深刻な日々の編集には至りません。だから、使いやすいものの、信頼性の高いエディタで作業を達成できれば、とても嬉しいことです。

おかげでたくさん、 フランク

答えて

0

grep -v -f pattern_file unmodified_file > new_file

がNEW_FILEに書き込み、unmodified_fileからpattern_fileのパターンを含むすべての行を削除します。

grep -vは、パターンと一致しない行を出力します。 -fはファイルからパターンを読み込みます。 Windows上で

これは、コマンドプロンプトでこれを実行するのと同じ表示されます。それだけです

FINDSTR /V /G:pattern_file unmodified_file > new_file

を。 2つのソースファイルがすでにある場合は、1つのライナーです。あなたはFINDSTR /?

+0

こんにちはstevesliva、ありがとう。私はWindowsを試して、それがうまくいくかどうかを知るために戻ってきます。 – frank

+0

こんにちは、もう一度やってみましたが、それは最初のヒットを成し遂げた。いくつかのチェックは、今までに新しく作成された 'new_file'に何の不具合も見つけられませんでした。私はそれを行う方法がなければならないことを知っていたwウィンダー、適切な男w正しいアドバイスを見つける必要があった。きれいで清潔。ありがとうStevesliva! – frank

+0

@frank私は 'grep'実装について言及しています。なぜなら、それは日常的にテキストでコードをmangleする人たちには標準的だからですが、これはDOSコマンドに正確に対応していました。答えを受け入れると感謝します(緑のチェックマーク)。ありがとう! – stevesliva

1

それは偉大な検索アルゴリズムも、プラグインをたくさん持っているので、あなたが++メモ帳を試すことができます。私は多くの検索をしなければならない同様の仕事をしました/私はインターネットから掘り出したプラグインを使用して、名前を正確に覚えていない(私はそれがメモ帳++または類似のもののreplaaccだと思う)。 SEDを使用して

+0

こんにちはBlueBrewBerryして説明されている他のオプション、ヒントのおかげで掘り下げない限り

pattern_fileは空白や大文字と小文字を区別することになるだろう。 – frank

0

sed -n '/PATTERN/n;p' FILE > FILE.new # then copy FILE.new to FILE 

が指示デフォルト(-n)によって出力されていないものにsedは、(/PATTERN/)パターンを見つけ、見つかった場合は、この行をスキップ(n)、それ以外の行(;p)を印刷。あなたはGNU sedを持っている場合は、単に自動的に起因する(-i /--in-place)にファイルを更新し

sed -i -n '/PATTERN/n;p' FILE` 

を呼び出すことができます。 UNIX/Linuxの/ cygwinの上

+0

こんにちは、私はSEDのWindersバージョンをインストールすることを避けるので、steveslivaの最初の試みに行くつもりです。しかし、ちょっと、とにかく、誰が知っている。 – frank

関連する問題