grep文件中的变量字符串

Luc*_*uca 1 regex linux bash grep match

我必须在文件中找到这个字符串:

200 https://www.example.example
Run Code Online (Sandbox Code Playgroud)

值200是随机的,我必须找到每个HTTP返回码(ex 200,301,404等...等)

我怎么能只用返回代码变量grep这个字符串(我不想在grep命令中指定每个返回代码)?

cat file.txt | grep "*** http*" 
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Tom*_*ech 8

所以你想匹配任何以三位数字开头的行,然后是"http"?

grep -E '^[0-9]{3} http' file.txt
Run Code Online (Sandbox Code Playgroud)

fedorqui(谢谢)建议更准确的是:

grep -E '^[1-5][0-9]{2} http' file.txt
Run Code Online (Sandbox Code Playgroud)

这匹配100-599范围内的数字,这更接近HTTP状态代码的范围.

  • 可能`^ [1-5] [0-9] {2}`更准确,因为它是[HTTP状态代码](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). (3认同)