ファイルを分類し、特定の行を出力にしたいと思います。
名前="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)