我想 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)