shell grep命令只选择特定的字符串

时间:2013-05-10 15:22:30

标签: shell grep

我有一个包含以下内容的文件

abc_cde_app_13.5.0.10
abc_cde_app_13.5.0.10.xml
abc_cde_app_13.5.0.10_log.url
abc_cde_app_13.5.0.10_note.xml

这些数字可能会改变,而不是标准。 我希望只挑选第一个。我将所有三个传递给变量$ file。但它显示所有三个文件的版本。我怎样才能获得第一个

if echo "$file" | grep -E "abc_cde_APP"; then
     echo "Version found: $file"
else
 echo "File not found"

1 个答案:

答案 0 :(得分:1)

怎么样:

grep 'abc_cde_app_[^_]*$'

它适用于您的示例:

kent$  echo "abc_cde_app_13.5.0.10
abc_cde_app_13.5.0.10_log.url
abc_cde_app_13.5.0.10_note.xml"|grep 'abc_cde_app_[^_]*$'   
abc_cde_app_13.5.0.10