我有一个文件,其中的数字开头为
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
假设所有数字都有八位数字,并且位于名为 nums.txt 的文件中,则可以使用 awk 字符串函数 substr 来筛选出所有最后两个字符相同的行:
awk '{ if(substr($1, 7, 1)==substr($1, 8, 1)) print $1}' nums.txt
然后你会得到:
00000000
00000011
00000022
00000055
....