3

以下のような行で大きな行があります

abc|Abc_12 cdf_rhtdm cdf|Cdf22 abc|Abc_100 ijm|smthr12
ddf|rtg_2 qwe_werth ddf|Cs2 abc|Abc_f0 ijm|styhr12 abc|Abc_33 ddf|Cs2 ddf|rtg_2
ddd_hm ddf|Cs2 ght|d_100 abc|Abc_55
cdf_rshtdm sdf|Cdf22 ght|d_100 ijm|smthr12     

少なくとも2回のようなパターンを持つ新しいファイルを作成したいabc|

したがって、ここで出力は次のようになります

abc|Abc_12 cdf_rhtdm cdf|Cdf22 abc|Abc_100 ijm|smthr12
ddf|rtg_2 qwe_werth ddf|Cs2 abc|Abc_f0 ijm|styhr12 abc|Abc_33 ddf|Cs2 ddf|rtg_2
4

4 に答える 4

0

それを使用awkすると、非常に簡単に実行できます。

$ awk '{if (gsub(/abc\|/, "abc", $0)>= 2) print}' file
abcAbc_12 cdf_rhtdm cdf|Cdf22 abcAbc_100 ijm|smthr12
ddf|rtg_2 qwe_werth ddf|Cs2 abcAbc_f0 ijm|styhr12 abcAbc_33 ddf|Cs2 ddf|rtg_2

説明

AWKマニュアルから:

gsub(正規表現、置換、ターゲット)

gsub 関数は、行われた置換の数を返します。

そのため、戻りコードを確認し、2 つ以上の場合は行を出力します。

于 2013-10-11T13:35:56.700 に答える