Perl 捕获特定变量并打印其值
想要捕获一个特定的变量,在本例中是Perl 捕获特定变量并打印其值,perl,sed,awk,Perl,Sed,Awk,想要捕获一个特定的变量,在本例中是DataIp,并打印它的值 数据: 例如 $ grep -Po '(?<=DataIp=\")[^\"]+' file 10.1.1.1 我们在DataIp之后捕捉单词,然后打印出来 考虑到一般情况下,我们希望捕获由“包装的第一个单词,我们也可以这样做 使用awk: $ awk -F\" '{print $2}' file 10.1.1.1 我们根据“分隔符在字段中拆分记录,并打印第二个 使用切割: $ cut -d'"' -f2 file 10.1
DataIp
,并打印它的值
数据:
例如
$ grep -Po '(?<=DataIp=\")[^\"]+' file
10.1.1.1
我们在DataIp
之后捕捉单词,然后打印出来
考虑到一般情况下,我们希望捕获由
“
包装的第一个单词,我们也可以这样做
使用awk
:
$ awk -F\" '{print $2}' file
10.1.1.1
我们根据“
分隔符在字段中拆分记录,并打印第二个
使用切割:
$ cut -d'"' -f2 file
10.1.1.1
我们根据“
分隔符在字段中拆分记录,并打印第二个。例如
$ grep -Po '(?<=DataIp=\")[^\"]+' file
10.1.1.1
我们在DataIp
之后捕捉单词,然后打印出来
考虑到一般情况下,我们希望捕获由“
包装的第一个单词,我们也可以这样做
使用awk
:
$ awk -F\" '{print $2}' file
10.1.1.1
我们根据“
分隔符在字段中拆分记录,并打印第二个
使用切割:
$ cut -d'"' -f2 file
10.1.1.1
我们根据“
分隔符在字段中拆分记录,并打印第二个。很好的例子,但我们拥有的数据如何:
当我获得主机名后如何打印和赋值。为什么用贪婪的星号代替+
?@KalinBorisov请再次解释,我不明白你的确切意思。如有必要,请使用新的输入/预期的输出更新您的问题。@您指的是哪种情况?Perl正则表达式通常匹配最长的字符串。在本例中,最长部分为2个字符。在内部,正则表达式引擎需要获取整个字符串。当您改用+
时,正则表达式不是贪婪的,在第一次匹配时停止。(在这种情况下,这不是一个大问题,但是当你有一个包含数千个匹配项的长文件时,它可以是安全的。很好的例子,但是我们的数据是什么:
当我得到主机名后如何打印和赋值。为什么用贪婪的星号代替+
?@KalinBorisov请再次解释,我不明白你的确切意思。如果有必要,用新的输入/预期的输出更新你的问题。@Paulchenkiller,你的意思是什么?Perl正则表达式通常匹配可能最长的字符串。在这种情况下,最长的部分是2个字符。在内部,正则表达式引擎需要获取整个字符串。当你使用相反,正则表达式不是贪婪的,当第一个匹配出现时就会停止。(在这种情况下这不是一个大问题,但是当你有一个包含数千个匹配项的长文件时,它可能是安全的。