変数 sed モードは文字列を削除します。

変数 sed モードは文字列を削除します。

パターンを削除する必要がある非常に大きなファイルがあります。問題は、ファイルに改行文字がないことです。削除するパターンは次のとおりです。... 1666 more itemsここで、1666は任意の数字にすることができます。

ベストアンサー1

sedこれが最高のツールかどうかはわかりません。個人的に私はperlそのようなものを見つけて、次のような結論を下しました。

perl -pe 'BEGIN{ $/ = " more items"; } s/\.\.\.\s\d+ more items$//;'

-e実行するプログラムのテキストです。

-pプログラムテキストの暗黙的なループが各レコードに対して一度実行されることを意味します(デフォルトでは、1つのレコードは1行です。以下の修正を参照)。

$/まず、デフォルトの改行()のレコード区切り文字を「more items」文字列に設定します。これは\n、マークされたブロックBEGIN { }の先頭で一度行われます。

レコード区切り文字まで(および含む)一度に1チャンクずつ入力を読み込みます。したがって、各ループの入力バッファには「とにかく…1234個の追加項目」があるようになります。

これはs/\.\.\.\s\d+ more items$//、3つの点(「すべての文字」の特別な意味を削除するためにエスケープされています)、スペース(\ s)、1つ以上の数字(\d+)、および「追加項目」テキストで構成される文字列を削除するための置換です。録音終了($)。記録の終わりを一致させる必要はありませんが、一致速度を上げることができます。

このオプションはデフォルトで結果を印刷します-p

おすすめ記事