パラメータファイルがあり、1つの単語をインポートしてからその単語のみを削除し、残りの部分をすべて残そうとします。たとえば、
例は次のとおりです。
#Parameter File
CAT=SammyISaGreatCat
これは私のコード文字列です。
export CAT=`grep CAT $PARFILE | grep -Ev "CAT="`
私はSammyIsaGreatCat
パラメータファイルからインポートされた唯一のものになりたいです。どうすればいいですか?
答え1
次のコマンドを使用してパラメータを読み取ることができます。
export CAT=$(grep -i "^cat=" "${PARFILE}" | head -1 | cut -d= -f2-)
追加のチェックでキャット大文字と小文字を区別せずにCAT=
。
答え2
別の解決策は次のとおりですawk
。
export CAT=$(awk -F= 'BEGIN{OFS=FS}$1~/^\W*CAT\W*$/{$1="";r=substr($0,1+length(FS))};
END{print r}' "$PARFILE")
これの利点は次のとおりです。
- キーの周りのオプションのスペースを柔軟に使用する
\W*
。CAT
- 複数の結果がある場合は、最後の結果のみが印刷されます。
=
価値を持って働いてください。- まず、出力フィールド区切り記号を入力フィールド区切り記号()と同じに設定します
OFS=FS
。 $0
最初のフィールドを消去し、最初の区切り文字()の後から再構成された行を保存します。
- まず、出力フィールド区切り記号を入力フィールド区切り記号()と同じに設定します