Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 捕获特定变量并打印其值_Perl_Sed_Awk - Fatal编程技术网

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个字符。在内部,正则表达式引擎需要获取整个字符串。当你使用相反,正则表达式不是贪婪的,当第一个匹配出现时就会停止。(在这种情况下这不是一个大问题,但是当你有一个包含数千个匹配项的长文件时,它可能是安全的。