以正则表达式(IP地址)开头的Awk打印行

Kar*_*hik 1 linux bash shell awk sed

我试图读取第一行具有IP地址的那些行的文件。

我下面的命令不返回任何值。

cat test.csv | awk '$1 == "^[[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}]" { print $0 }'
Run Code Online (Sandbox Code Playgroud)

正则表达式可以捕获IP地址。

也尝试了以下内容

cat test_1.csv | awk '$1~/^[[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\]/ {print $0}'
Run Code Online (Sandbox Code Playgroud)

test.csv

1.1.1.1 ipaddress gateway
2.2.2.2 ipaddress_2 firewall
www.google.com domain google
Run Code Online (Sandbox Code Playgroud)

red*_*neb 5

您可以使用grep以下命令更轻松地完成此操作:

grep -P '^\d+(\.\d+){3}\s' test.csv
Run Code Online (Sandbox Code Playgroud)

要么

grep -P '^\d{1,3}(\.\d{1,3}){3}\s' test.csv
Run Code Online (Sandbox Code Playgroud)