/ etc / oratabで "test"インスタンスをgrepしようとしています。しかし、コメントで始まらない行だけを表示したいです。以下は、/etc/oratab ファイルの行です。
#test:/u01/appl/oracle/test/db/tech_st/12.1.0.2:N
test:/b001/app/oracle/testrac/db/tech_st/12.1.0.2:N # line added by Agent
これが私が興味のある詳細を取得しようとしている方法です(シェルスクリプトに次のように入力します)。
DB_NAME=test
env_var=`cat /etc/oratab |grep $DB_NAME |grep -v '#' |cut -d":" -f 2`
echo $env_var
ここでの問題は、2行目にも最後にコメントがあるため、やはり無視されることです。
助けてください。
ありがとう、RA
ベストアンサー1
awk
より良い選択は次のとおりです。
DB_NAME=test; export DB_NAME
file=$(awk -F: '$1 == ENVIRON["DB_NAME"] {print $2; exit}' < /etc/oratab)
printf '%s\n' "$file"
Solaris では、次のことを行う必要があります。
PATH=$(getconf PATH):$PATH
(#! /usr/xpg4/bin/sh -
Solaris 10以下の場合を使用)標準ユーティリティ用です。またはを使用してください。それ以外の場合は、1970年代の古い製品になる可能性がcommand -p awk
あります。awk