需要说明一下 bash grep正则表达式 grep -E '(^|[^0-9.])'2 *.c

need to explain bash grep regular expression grep -E '(^|[^0-9.])'2 *.c

我对这个 grep 命令感到困惑。我希望有人为我解释一下。

对于每个数字 i,在 textd.sh)

中搜索(非数字)i 序列
grep -E '(^|[^0-9.])'i *.c

for i in 0 1 2 3 4 5 6 7 8 9; do
   grep -E '(^|[^0-9.])'$i *.c > lines_with_${i}
done

这个grep命令:

grep -E '(^|[^0-9.])'$i *.c

正在循环匹配数字 0、1、2、3...。

在匹配这些数字时,它确保数字要么在开头 (^),要么在这些数字之前有一个非数字非点字符 ([^0-9.])。

例如它将匹配:

abc 1
2
def5

不匹配:

abc.1