ファイルから2番目、3番目、4番目のフィールドを抽出し、次のようaaa.log
に出力を生成する必要があります。
- sqlplus -sl dbsnmp/Or8cle@\"COL3:COL4/COL2\"
入力する:
$ cat aaa.log
aaa:fDb:a0081:1800:f1:dsds
aaa:iDb:a0081:1801:i1:dsds
aaa:pDb:a0081:1802:p1:dsds
予想出力:
sqlplus -sl dbsnmp/Or8cle@\"a0081:1800/fDb\"
sqlplus -sl dbsnmp/Or8cle@\"a0081:1801/iDb\"
sqlplus -sl dbsnmp/Or8cle@\"a0081:1802/pDb\"
COL2をファイルに抽出した。
$ cat aaa.log | cut -d":" -f2 > aaa_i.log
$ cat aaa_i.log
fDb
iDb
pDb
そしてCOL3とCOL4を抽出します。
$ cat aaa.log | awk -F: '{print $3 ":" $4}' > aaa_h_p.log
$ cat aaa_h_p.log
a0081:1800
a0081:1801
a0081:1802
以下のコードを試してみました。
set -f
IFS='
> '
set -- $( cat aaa_i.log)
for i in `cat aaa_h_p.log`
do
printf "%s %s\n" "sqlplus -sl sys/hSys10Nov@\""${i}"/"$1"\""
done
現在の出力:
sqlplus -sl dbsnmp/Or8cle@\"a0081:1800/fDb\"
sqlplus -sl dbsnmp/Or8cle@\"a0081:1801/fDb\"
sqlplus -sl dbsnmp/Or8cle@\"a0081:1802/fDb\"
私はo / pのCOL2からのみfDbを取得しますが、そこにすべての値が必要です。コードを修正するのに役立ちます。 AWKを使って変更することも大歓迎です。
ベストアンサー1
while IFS=: read a b c d e f;do
echo sqlplus -sl dbsnmp/Or8cle@\"$c:$d/$b\"
done < aaa.log