shell 如何读取下一个字符,如果它给定的字符串被发现在一个文件中使用bash脚本?

qpgpyjmq  于 12个月前  发布在  Shell
关注(0)|答案(2)|浏览(74)

我有一个文件如下(文件名是/document/test)

Filename:  
  Description:  
  Version:  1.0
  Created:  
  Revision:  none
  Compiler:  gcc
   Author:   (), 
   Company:

我想写一个bash脚本来显示版本号(在这个例子中是1.0)
我试过这个

#!/bin/bash

if grep -q Version /Documents/test; then
    echo "string found"
else
    echo "not found"        
fi

它说字符串被发现,但我需要的版本号,如果给定的字符串被发现

yzuktlbb

yzuktlbb1#

你可以使用awk来查找所有第一个字是Version:的行,然后输出它们的第二个字:

awk '$1 == "Version:" {print $2}' /Documents/test
1.0
5m1hhzi4

5m1hhzi42#

我喜欢用正则表达式的方式来做:

grep 'Version:' /Documents/test | grep -Eo '([0-9]+\.[0-9]+)'
1.0
  • -E:扩展正则表达式。
  • -o:只返回匹配的部分。

因此,您甚至可以更改regex来调整您想要的版本模式。
例如

# only match version 1.x
grep 'Version:' /Documents/test | grep -Eo '(1\.[0-9]+)'

相关问题