有沒有一個內置的命令來做到這一點,或有人有任何運氣與腳本做到這一點?如何計算整個文件中字符串的出現次數?
我正在計算一個文件中出現某個字符串(而不是單詞)的次數。這可以包括每行多次出現的次數,因此計數應計入每次出現次數,而不是隻計算1次出現次數爲2次或更多次的行。
例如,使用此示例文件:
blah(*)wasp(*)jkdjs(*)kdfks(l*)ffks(dl
flksj(*)gjkd(*
)jfhk(*)fj (*) ks)(*gfjk(*)
如果我期待數字符串(*)
的出現我預計數爲6,即2從第一線,1條從第二線和第三線的3。請注意跨越第2-3行的那個不算數,因爲有一個LF字符將它們分開。
更新:到目前爲止的回覆非常棒!我可以要求腳本處理(*)
到\(*\)
等的轉換嗎?這樣我就可以傳遞任何需要的字符串作爲輸入參數,而不用擔心需要對其進行什麼樣的轉換,以便以正確的格式顯示。
我不太明白你的「更新」。你正在尋找正則表達式中Perl的'quotemeta'函數,或'\ Q'和'\ E'嗎? – DavidO 2012-04-12 08:38:45
@DavidO - 我不確定quotemeta是否可以做到這一點。基本上我設想:var_input =「(*)」; var_proper_format = some_func(var_input);而/ var_proper_format/g; ....即如此var_proper_format自動計算從給定的輸入var_input – toop 2012-04-12 09:31:50