Shell-Script
如何查找包含超過 100 個字元並包含“if”的行?
所以,也許我應該用
grep
這個。只要我需要遞歸搜尋,我就應該使用grep -r
. 但是後來我不知道下一步該怎麼做;)我怎樣才能做到這一點?
使用
grep
s 支持-r
(recursive) 和-P
(PCRE) 選項(或pcregrep
使用-r
):grep -rP '^(?=.{101}).*?if' .
或POSIXly:
find . -type f -exec awk 'length > 100 && /if/ { print FILENAME ": " $0}' {} +
(請注意,在非文本文件(包含非字元、零字節值、太長的行或最後一個換行符之後的數據的文件)的實現之間,行為會有所不同。另請注意,某些
grep
實現將在非正常文件中搜尋或將遵循符號連結)。
使用 awk 計算 $0 的大小和子字元串是否存在?
awk '( length($0) > 100 && index($0,"if") ){print}' file
如果“if”應該是一個詞(而不是一個簡單的子字元串),你可以使用
awk '( length($0) > 100 && match($0,/\<if\>/) ){print}' file