Shell-Script

如何查找包含超過 100 個字元並包含“if”的行?

  • December 11, 2015

所以,也許我應該用grep這個。只要我需要遞歸搜尋,我就應該使用grep -r. 但是後來我不知道下一步該怎麼做;)

我怎樣才能做到這一點?

使用greps 支持-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

引用自:https://unix.stackexchange.com/questions/248550