パラメータファイルで一致しないテキストを見つける

パラメータファイルで一致しないテキストを見つける

パラメータファイルがあり、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最初のフィールドを消去し、最初の区切り文字()の後から再構成された行を保存します。

関連情報