Regex 如何在Linux上使用正则表达式查找文件中的信息
我有一个文件,里面有很多行。其中一个看起来像:Regex 如何在Linux上使用正则表达式查找文件中的信息,regex,linux,shell,scripting,Regex,Linux,Shell,Scripting,我有一个文件,里面有很多行。其中一个看起来像: set auto_upgrade {1 2 3 4} 列表可以包含更多的数字 现在,在一个shell脚本中,我想查看这个文件,找出列表中的最后一个数字是什么。在上面的例子中,它应该找到4。我有一个正则表达式可以找到: set auto_upgrade {\([0-9] \)*\([0-9]\{1,\}\)} 第二组包含我需要的内容。 但是,如何使用此正则表达式?我尝试了sed,但它返回了包含子项的完整文件。我只想要第二组 提前感谢,, 巴特差不
set auto_upgrade {1 2 3 4}
列表可以包含更多的数字
现在,在一个shell脚本中,我想查看这个文件,找出列表中的最后一个数字是什么。在上面的例子中,它应该找到4。我有一个正则表达式可以找到:
set auto_upgrade {\([0-9] \)*\([0-9]\{1,\}\)}
第二组包含我需要的内容。
但是,如何使用此正则表达式?我尝试了sed,但它返回了包含子项的完整文件。我只想要第二组
提前感谢,,
巴特差不多
cat文件名| perl-pe's/^.*(\d+)\}/$1/'
应该有用。类似
sed 's/.*\([0-9]\+\)}/\1/g'
cat文件名| perl-pe's/^.*(\d+)\}/$1/'
应该有用
sed 's/.*\([0-9]\+\)}/\1/g'
替换部分中的“\1”与组匹配。i、 e.(忽略转义和引号)
将返回pattern2的匹配部分
替换部分中的“\1”与组匹配。i、 e.(忽略转义和引号)
将首先返回pattern2的匹配部分,在安静模式下启动sed:除非被告知,否则它不应打印任何内容(这是标志
-n
)。然后仅在已进行替换时打印(即模式修改器p
)
首先,在安静模式下启动sed:它不应该打印任何东西,除非被告知这样做(这是标志
-n
)。然后仅在已进行替换时打印(即模式修改器p
)
sed -n 's/set auto_upgrade {\([0-9] \)*\([0-9]\{1,\}\)}/\2/p'