从文件中提取字符串并将其存储在变量中

时间:2020-04-27 14:54:28

标签: shell awk sed text-parsing

我有一个包含下面一行的文件。

ARG VERSION="6.0.0" // Here 6.0.0 is the version and could be any number.

我需要提取此值6.0.0并将其存储为shell变量,以便以后在构建中使用。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

sed -nE 's/ARG VERSION=\"(.*)\"/\1/p' <file_with_string>可能有效。

在这种情况下,我们捕获双引号之间的内容,选择第一个捕获组(\1)和print(p

答案 1 :(得分:0)

请您尝试以下。

awk 'match($0,/ARG VERSION="[^"]*/){print substr($0,RSTART+13,RLENGTH-13)}' Input_file

说明: :为此添加了详细说明。

awk '                                      ##Starting awk program from here.
match($0,/ARG VERSION="[^"]*/){            ##Using match function to match regex ARG VERSION=" till " here.
  print substr($0,RSTART+13,RLENGTH-13)    ##Printing sub-string of current line starting point is RSTART ending point is RLENGTH.
}
' Input_file                               ##Mentioning Input_file name here.