如何在 shell 中换行并将特定字符串分配给变量

如何在 shell 中换行并将特定字符串分配给变量

我想 cat 一个文件并将特定行作为输出:

名称=“XXX”

如何仅将 XXX 分配给变量 $name

答案1

如果文件是 shell 或 bash 代码,最好的选择将是到source文件来获取所有变量:

. ./file

或者,如果不是所有内容都是 shell 代码,或者您不想执行其中的所有内容,则source如果您之前过滤文件,仍然可以执行:

. <(grep '^NAME=' file)

然后就可以使用变量了$NAME


备择方案:

如果可用的话使用grep -P

name=$(grep -Po '^NAME="\K[^"]*' file)

使用grep不带-P

name=$(grep -o '^NAME="[^"]*' file | sed 's/NAME="//')

使用awk

name=$(awk -F\= '$0~/^NAME/{gsub(/"/,"",$2);print $2}' file)

相关内容