から始まる数字のファイルがあります
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
....