我試圖計算至少有兩個連續字母相同的單詞的數量,
我使用 grep 命令嘗試了一些東西,首先我使用 tr 命令讓每個單詞在新行中顯示,之后,我使用 grep 來匹配模式,
tr ' ' '\12' | grep -c '\(.*\).\1'
但這給了我所有單詞的計數,當我使用沒有 -c 選項和 grep 的相同命令時,我只看到匹配的單詞中的字母以紅色突出顯示,如下所示:
https://i.stack.imgur.com/Vfjys.png
我也嘗試使用 :
tr ' ' '\12' | '\(.*\).\1' | wc -l并得到 24 而不是 5。
uj5u.com熱心網友回復:
鑒于此輸入文本lorem-ipsum.txt:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
與上面相同的文本,其雙字母突出顯示:
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliquaUt enim ad minim veniam quis nostrud exercitation (1) u ll amco laboris nisi ut aliquip ex ea (2) com mm odo consequatDuis aute irure dolor in reprehenderit in voluptate velit (3) e ss e (4) ci ll um dolore eu fugiat (5) nu ll a pariaturExcepteur sint (6) o cc aecat cupidatat non proident sunt in culpa qui (7) o ff icia deserunt (8) mo二it anim id est labourum
您計算包含連續雙字母的單詞:
tr -c '[:alpha:]' '\n' < lorem-ipsum.txt | grep -c '\(.\)\1'
tr -c '[:alpha:]' '\n':將非字母字符轉換為換行符,因此每個單詞都放在流中自己的行上。grep -c '\(.\)\1': 計??算任何捕獲的字符的出現次數,\(.\)然后是其自身\1。
測驗斷言:
[ 8 -eq "$(tr -c '[:alpha:]' '\n' < lorem-ipsum.txt | grep -c '\(.\)\1')" ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/412229.html
標籤:
