c_arr
テーブルエイリアスを持つテーブル列を含む配列があります。ただし、配列には実際には列ではなく一部の要素があるため、型はありませんalias.column_name
。
含まれていないアイテムを削除する必要があります.
。どうすればいいですか?
配列は次の文を使用して生成されます。
c_arr=($echo $(grep -io "\b$alias.\w[a-zA-Z_0-9]*" $output_file))
上記の行には別の問題があります。$alias.
エイリアスの後にドットを使用して検索しても、配列はドットをc_arr
含まない他の値を取得します。配列の例の値は次のとおりです。
cab.SYSTEM_NAME
cab.row_id
cab.name
cabxa
cabxa
cab.x_sys_name
cab.status_Cd
cab.LAST_UPD
修正する:
今の問題は、c_arr
配列に点要素と非点要素がある場合、配列から文字を含まない要素を削除する方法です。.
内容はc_arr
次のとおりです。
cab.SYSTEM_NAME
cab.row_id
cab.name
cabxa
cabxa
cab.x_sys_name
cab.status_Cd
cab.LAST_UPD
希望の出力は次のとおりです。
cab.SYSTEM_NAME
cab.row_id
cab.name
cab.x_sys_name
cab.status_Cd
cab.LAST_UPD
ベストアンサー1
これにより、次のことができます。
c_arr=$(echo $(grep -i "${alias}\." $output_file))
Bill Jetzerが述べたように、正規表現でドットをエスケープする必要があるからです。
ドットを持つすべての項目が有効であると確信している場合は、次のこともできます。
c_arr=$(echo $(grep -i \. $output_file))