possible
与えられた入力ファイルからパターンで始まる文字列が繰り返し表示されることを検索したいと思います。
- 入力例:
this is the best possible solution possible1234 solution!!! possible5678 solution!!! possible5678 solution!!! possible0000 solution! possible0000 solution! There should be some "possible7777" solution! There should be some "possible7777" solution!
- 希望の出力:
possible5678 solution!!! possible0000 solution! There should be some "possible7777" solution!
possibleNNNN
これは、ファイル内で複数回発生するパターンマッチングであるためです。
ベストアンサー1
これは特定の問題に対する考えられる解決策を提供する。質問に対するさまざまな修正:
<your-file grep '^possible[[:digit:]]' | sort | uniq -d
で始まる重複行を語彙的にソートしたリストを提供しますpossible<digit>
。
grep
possible
で始まり、その後に少なくとも1つの数字が続く行を選択します。sort
重複した項目が隣接するように結果を並べ替えます(必須uniq
)。uniq -d
重複として報告されました。
GNUの実装または互換性をpossible<digits>
想定して入力内のすべての項目を一致させるには、次の手順を実行します。grep
<your-file grep -Po 'possible\d+' | sort | uniq -d
次のように入力すると:
おそらく123私はxxですおそらく123うん
これにより、以下が提供されます。
possible123
重複エントリを含むすべての一意の行の場合possible<digit>
:
perl -lne 'if (/possible(\d+)/) {
$count{$1}++;
$lines{$1}->{$_}++;
}
END{
for $k (grep {$count{$_} > 1} keys %count) {
print for keys %{$lines{$k}}
}
}' < your-file
次のように入力すると:
this is the best possible solution
possible1234 solution!!!
possible5678 solution!!!
possible5678 solution!!!
possible0000 solution!
impossible0000 other solution!
それは以下を提供します:
possible0000 solution!
impossible0000 other solution!
possible5678 solution!!!
(与えられた行が互いに隣にあること以外は定義されpossibleXXXX
た順序はありません)。