1

パターンを使用してファイルを分割するのに問題があります。

私の大きなファイルは、このようなテキストファイルです

PATTERN
data
data
data PATTERN

PATTERN が行末にあるときに問題が発生し、csplit は行全体を取得して次のファイルに配置します。

data_belonging_to_the_above_file PATTERN
data
data

data_belonging_to_the_above_file前のファイルに入れる必要があります

これは私が今使っているコマンドです:

csplit data.log /PATTERN/ {*}
4

1 に答える 1

1

以前のコメントと同様に、私の解決策は、置換を使用してファイルを前処理することです。私はこれを試しました:

perl -pe 's/(?<!^)(PATTERN)/\n\1/mg;s/(PATTERN)(?!$)/\1\n/mg'

これにより、パターンが行頭でない場合はパターンの前に改行が追加され、行末でない場合はパターンの後に改行が追加されます。sed のすべてのバージョンがこの表現をサポートしているわけではないため、私は perl を使用します。

于 2012-08-06T09:08:58.563 に答える