シェルから行を囲み、特定の文字列を変数に割り当てる方法

シェルから行を囲み、特定の文字列を変数に割り当てる方法

ファイルを分類し、特定の行を出力にしたいと思います。

名前="XXX"

$name変数にXXXのみを割り当てる方法

答え1

ファイルがシェルまたはbashコードの場合最良の選択sourceすべての変数を取得するにはファイルを送信する必要があります。

. ./file

または、すべてがシェルコードでない場合、またはその中にあるすべてを実行したくない場合は、以前に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)

関連情報