相关疑难解决方法(0)

使用 bash 命令行组合 IP 字符串

我有一个返回以下内容的命令:

 id1="172" id2="17" id3="136" id4="5" id5="0" />
 id1="172" id2="17" id3="128" id4="2" id5="0" />
 id1="172" id2="17" id3="128" id4="4" id5="0" />
 id1="172" id2="17" id3="128" id4="6" id5="0" />
Run Code Online (Sandbox Code Playgroud)

组合的前四个 ID 代表一个 IP 地址(例如172.17.136.5第一行)。

我想将上述内容通过管道传递给解析命令,该命令将输出一个字符串,其中所有 IP 地址以空格分隔。

对于上面的例子:

myVariable="172.17.136.5 172.17.128.2 172.17.128.4 172.17.128.6"
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

bash shell-script text-processing

5
推荐指数
1
解决办法
388
查看次数

多行正则表达式(grep、sed、awk、perl)

我知道多行正则表达式已经讨论了几十次,但我无法让它与我的模式一起工作。

我会试着解释一下。我在一个目录中有一些文本文件。文件中的文本示例:

LINE OF TEXT 2
LINE OF TEXT 1
LINE OF TEXT 3

LINE OF TEXT 1
LINE OF TEXT 2
LINE OF TEXT 3

LINE OF TEXT 1
LINE OF TEXT 3

LINE OF TEXT 3
LINE OF TEXT 2
LINE OF TEXT 1

LINE OF TEXT 2
LINE OF TEXT 3
Run Code Online (Sandbox Code Playgroud)

我想找到在“LINE OF TEXT 2”之后的“LINE OF TEXT 3”,而后者又出现在“LINE OF TEXT 1”之后(中间没有空行)。

每行必须是一个正则表达式本身,例如一行以“LINE”开头并以特定数字结尾。

注意:并非所有文件都包含该确切的行序列,因此如果模式匹配,则不要打印模式,而只是将文件名打印到 STDOUT。

这可以在单行正则表达式中完成吗?因此,例如,awk 在文件中搜索模式,如果找到模式,则将文件名打印到 STDOUT。然后我可以将此正则表达式与“find -exec”结合使用。

任何提到的工具都可以使用(grep、awk、sed 或 perl)。

grep sed awk regular-expression

5
推荐指数
1
解决办法
1337
查看次数