如何過濾文件以獲得完全由重複數字對組成的行?

如何過濾文件以獲得完全由重複數字對組成的行?

我的文件的編號從

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

....

相關內容