web-dev-qa-db-ja.com

TextWranglerでWordを含むすべての行を削除するにはどうすればよいですか?

数千行の巨大なファイルがあります。「Foo」という単語が含まれている行のみを削除したいと思います。

どうすればこれを行うことができますか?私はMacを使用しているので、コマンドラインユーティリティを使用できますが、TextWranglerを使用したいと思います。

5
Zee

ほとんどのグラフィカルプログラマーのエディターでは、このような行を削除することはできず、内容を変更するだけです。これは、^.*Foo.*$を何にも置き換えずに行うことができます。

外部ツールを検討したい場合は、sed "/Foo/d"でフィルタリングすることでこれを行うことができます。

TextWranglerの場合:Text> Process LinesContaining…

18

このための簡単なコマンドラインは次のとおりです。

grep -v myword myfile > newfile
1
Chris Nava

正規表現を使用して行を検索し、それらを空の文字列に置き換えます。

正規表現の作成方法を説明するページは次のとおりです。

http://www.regular-expressions.info/completelines.html

TextWranglerでこれを行うには:

  1. 「検索」メニューから「検索」を選択します。
  2. Grepチェックボックスをオンにします。
  3. [検索:]テキストボックスに正規表現を入力します。
  4. [次へ]を選択します。
1
Avalanchis

裸の骨TextWrangler http://www.barebones.com/products/textwrangler/

…メニュー項目を含むテキストメニュープロセスライン

削除するテキストを入力してから、行の削除を選択します

確認

Process Lines Containing

0
joshua paul

このPerlコマンドラインでうまくいきます!

Perl -ni -e "print unless /Foo/" large_file.txt

複数のファイルを作成することもできます。

Perl -ni -e "print unless /Foo/" *.txt
0
user247650

^.*Foo.*\rを何も指定せずに(「UseGrep」を有効にして)検索して置き換えると、「Foo」が含まれている行が空白になるだけでなく、完全に削除されます。唯一の制限は、ファイルの最後の行では機能しないことです。 (\r.*Foo.*$を何も置き換えないと、最後の行では機能しますが、最初の行では機能しません。)

0
Gordon Davisson