我将如何在 bash 中用多个字符分隔字符串。我想获取第一个 IP 地址。
inet addr:127.0.0.1 Mask:255.0.0.0
Run Code Online (Sandbox Code Playgroud)
我会这样做
echo "inet addr:127.0.0.1 Mask:255.0.0.0" | cut -d' ' -f2 | cut -d':' -f1
Run Code Online (Sandbox Code Playgroud)
但我想将最后两个命令合并为一个命令。
我想得到
127.0.0.1
使用awk,将字段分隔符设置为一个或多个空格/制表符或:,并获取第三个字段:
awk -F '[[:blank:]:]+' '{print $3}'
Run Code Online (Sandbox Code Playgroud)
请注意,这将得到上述字段分隔符分隔的第三个字段,该字段可能是也可能不是有效的 IP 地址;根据您的尝试cut,我假设输入是一致的。
例子:
% awk -F '[[:blank:]:]+' '{print $3}' <<<'inet addr:127.0.0.1 Mask:255.0.0.0'
127.0.0.1
Run Code Online (Sandbox Code Playgroud)