ファイルをフィルタリングして、繰り返し数字のペアのみで構成される行を取得するにはどうすればよいでしょうか?

ファイルをフィルタリングして、繰り返し数字のペアのみで構成される行を取得するにはどうすればよいでしょうか?

から始まる数字のファイルがあります

00000000
00000001
00000002
.
.
.
99999999

出力が次のようになるように、bash でフィルタリングします。

00000000
00000011
00000022
.
.
11223344
11223355
.
.
99999977
99999988
99999999

答え1

実際にそうしたいようですフィルターファイルをソートするのではなく、特に、繰り返し文字または(より具体的には)数字のペアだけで構成される行のみを出力します。たとえば、 を使用するとgrep、次のようなものになります。

grep -Ex '((.)\2)+' yourfile

またはPCREモードを使用して外側のグループをキャプチャしないようにする

grep -Px '(?:(\d)\1)+' yourfile

答え2

すべての数字が 8 桁で、nums.txt というファイルにあると仮定すると、substr の awk 文字列関数を使用して、最後の 2 文字が同じであるすべての行をフィルター処理できます。

awk '{ if(substr($1, 7, 1)==substr($1, 8, 1)) print $1}' nums.txt

すると次のようになります:

    00000000
    00000011
    00000022
    00000055

....

関連情報