質問編集履歴
1
リダイレクトとパイプの説明を読みそれでも不明なところのみ質問させていただきます。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,25 +8,47 @@
|
|
8
8
|
|
9
9
|
これはLST_DATABASE=$LST_DATABASEなのか?
|
10
10
|
|
11
|
-
|
11
|
+
|
12
|
-
|
13
|
-
|
12
|
+
|
14
|
-
|
15
|
-
・hive -S -v -f $変数 > $変数の処理
|
13
|
+
・hive -S -v -f $変数A > $変数B の処理 -vはなんでしょうか?調べてもでてきません。
|
16
|
-
|
14
|
+
|
17
|
-
|
15
|
+
hive -S -f $変数A > $変数B はサイレントモードで$変数ファイルAを$変数Bに出力だと思いますが。。。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
18
20
|
|
19
21
|
・if [ "$tblname" != "" ];then の動き
|
20
22
|
|
23
|
+
これは"$tblname"の!= が空白の時ということですか?
|
24
|
+
|
25
|
+
これも意味がよくわかりません。
|
26
|
+
|
27
|
+
"$tblname"=""ならわかるのですが。。。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
21
33
|
・cp /dev/null $変数 の処理
|
22
34
|
|
23
|
-
|
24
|
-
|
25
|
-
|
35
|
+
cpはコピーするということで/dev/nullのパスを$変数にコピーするということでしょうか?
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
・tblname=`echo $line | awk '{print $3}'`の処理
|
42
|
+
|
43
|
+
$line書き出しをawk {print $3}を利用して入力ファイルの各行の 3番目のフィールドが出力される処理に出力するというのはつまりどういうことになるのでしょうか?
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
26
48
|
|
27
49
|
下記がコードと読解したメモになります。
|
28
50
|
|
29
|
-
|
51
|
+
|
30
52
|
|
31
53
|
|
32
54
|
|
@@ -34,10 +56,6 @@
|
|
34
56
|
|
35
57
|
```ここに言語を入力
|
36
58
|
|
37
|
-
#!/bin/sh
|
38
|
-
|
39
|
-
|
40
|
-
|
41
59
|
. /opt/mapr/mapr_bashrc
|
42
60
|
|
43
61
|
|
@@ -52,7 +70,7 @@
|
|
52
70
|
|
53
71
|
echo "[$LST_DATABASE]" //$LST_DATABASEの書き出し
|
54
72
|
|
55
|
-
hive -S -e "show databases;" > $LST_DATABASE //
|
73
|
+
hive -S -e "show databases;" > $LST_DATABASE //$LST_DATABASEに対してshow databases;を実行で取得したデータを$LST_DATABASEに出力。 //余計なMsgを出力させたくない時はサイレントモード-Sを利用する。-eオプションで通常のコマンドからクエリを実行することが可能。>=リダイレクト
|
56
74
|
|
57
75
|
|
58
76
|
|
@@ -92,7 +110,7 @@
|
|
92
110
|
|
93
111
|
echo "[$LST_TABLE]" //$LST_TABLEの書き出し
|
94
112
|
|
95
|
-
hive -S -e "use $dbname;show tables;" > $LST_TABLE //
|
113
|
+
hive -S -e "use $dbname;show tables;" > $LST_TABLE //ディレクトリを作った$dbnameに対してshow tables;を実行で取得したデータを$LST_TABLE出力。
|
96
114
|
|
97
115
|
|
98
116
|
|
@@ -104,7 +122,7 @@
|
|
104
122
|
|
105
123
|
echo "[$TBL_HQL_FILE]" //$TBL_HQL_FILEの書き出し
|
106
124
|
|
107
|
-
echo "use $dbname;" > $TBL_HQL_FILE //
|
125
|
+
echo "use $dbname;" > $TBL_HQL_FILE //use $dbname;の書き出しを$TBL_HQL_FILEに出力
|
108
126
|
|
109
127
|
|
110
128
|
|
@@ -112,13 +130,13 @@
|
|
112
130
|
|
113
131
|
do
|
114
132
|
|
115
|
-
echo "desc formatted ${tblname};" >> $TBL_HQL_FILE //
|
116
|
-
|
117
|
-
done < $LST_TABLE //
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
hive -S -v -f $TBL_HQL_FILE > $TBL_TMP_FILE /
|
133
|
+
echo "desc formatted ${tblname};" >> $TBL_HQL_FILE //${tblname}のテーブルの情報の表示結果を$TBL_HQL_FILEに追加上書き //テーブルの情報を表示する。DESCRIBEは省略して「DESC」を使用可能。formattedを付けると、詳細情報が整形された分かりやすい状態で表示される。>>=ファイルに追加書き込みした場合は>>を使う。
|
134
|
+
|
135
|
+
done < $LST_TABLE //done に $LST_TABLEを出力。 done=ループ終了。
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
hive -S -v -f $TBL_HQL_FILE > $TBL_TMP_FILE /-vが何か不明。おそらく$TBL_HQL_FILEをサイレントオプショんとなんらかのオプションの実行結果を$TBL_TMP_FILEに出力 //-fでクエリを記述したファイルを読み込ませて実行 //-f=ファイル
|
122
140
|
|
123
141
|
#テーブル情報個別ファイル出力
|
124
142
|
|
@@ -152,9 +170,9 @@
|
|
152
170
|
|
153
171
|
fi
|
154
172
|
|
155
|
-
echo $line >> $LST_DESC //
|
173
|
+
echo $line >> $LST_DESC //$lineの書き出しデータを$LST_DESCに追加上書き。
|
156
|
-
|
174
|
+
|
157
|
-
done < $TBL_TMP_FILE //
|
175
|
+
done < $TBL_TMP_FILE // doneに$TBL_TMP_FILEの結果を出力。
|
158
176
|
|
159
177
|
|
160
178
|
|
@@ -166,7 +184,7 @@
|
|
166
184
|
|
167
185
|
echo "[$PRT_HQL_FILE]" //$PRT_HQL_FILEの書き出し
|
168
186
|
|
169
|
-
echo "use $dbname;" > $PRT_HQL_FILE //
|
187
|
+
echo "use $dbname;" > $PRT_HQL_FILE //use $dbname;の書き出しを$PRT_HQL_FILEに出力
|
170
188
|
|
171
189
|
tblname=""
|
172
190
|
|
@@ -174,7 +192,7 @@
|
|
174
192
|
|
175
193
|
do
|
176
194
|
|
177
|
-
if [ "`echo $line | grep '^desc formatted'`" != "" ];then //
|
195
|
+
if [ "`echo $line | grep '^desc formatted'`" != "" ];then //$lineの書き出だしをdesc formattedから始まる行の探し出し。!=空白の場合の処理に出力 //|=パイプ:あるプロセスの実行結果を別のプロセスの入力にリダイレクトすることもできる.
|
178
196
|
|
179
197
|
tblname=`echo $line | awk '{print $3}'` //awkがイマイチ理解できていない。tblname=$lineの書き出し。awk {print $3}を利用して入力ファイルの各行の 3番目のフィールドが出力する。
|
180
198
|
|
@@ -188,9 +206,9 @@
|
|
188
206
|
|
189
207
|
fi
|
190
208
|
|
191
|
-
if [ "`echo $line | grep '^# Partition Information'`" != "" ];then //
|
209
|
+
if [ "`echo $line | grep '^# Partition Information'`" != "" ];then //$lineの書き出だしをPartition Informationから始まる行の探し出し。!=空白の場合の処理に出力
|
192
|
-
|
210
|
+
|
193
|
-
echo "show partitions $tblname;" >> $PRT_HQL_FILE //
|
211
|
+
echo "show partitions $tblname;" >> $PRT_HQL_FILE //show partitions $tblname;の書き出しを$PRT_HQL_FILEに追加上書き
|
194
212
|
|
195
213
|
tblname=""
|
196
214
|
|
@@ -198,9 +216,9 @@
|
|
198
216
|
|
199
217
|
fi
|
200
218
|
|
201
|
-
done < $TBL_TMP_FILE //
|
219
|
+
done < $TBL_TMP_FILE //doneに$TBL_TMP_FILEを出力
|
202
|
-
|
220
|
+
|
203
|
-
hive -S -v -f $PRT_HQL_FILE > $PRT_TMP_FILE //
|
221
|
+
hive -S -v -f $PRT_HQL_FILE > $PRT_TMP_FILE //-vが何か不明。おそらく$PRT_HQL_FILEをサイレントオプショんとなんらかのオプションでの実行結果を$TBL_TMP_FILEに出力
|
204
222
|
|
205
223
|
|
206
224
|
|
@@ -212,7 +230,7 @@
|
|
212
230
|
|
213
231
|
do
|
214
232
|
|
215
|
-
if [ "`echo $line | grep '^show partitions'`" != "" ];then //
|
233
|
+
if [ "`echo $line | grep '^show partitions'`" != "" ];then //$lineの書き出だしをshow partitions!=空白の場合の処理に出力
|
216
234
|
|
217
235
|
tblname=`echo $line | awk '{print $3}'` //awkがイマイチ理解できていない。tblname=$lineの書き出し。awk {print $3}を利用して入力ファイルの各行の 3番目のフィールドが出力する。
|
218
236
|
|
@@ -236,18 +254,16 @@
|
|
236
254
|
|
237
255
|
fi
|
238
256
|
|
239
|
-
echo $line >> $LST_PART //
|
257
|
+
echo $line >> $LST_PART //$lineの書き出しを$LST_PARTに追加上書き
|
240
|
-
|
258
|
+
|
241
|
-
done < $PRT_TMP_FILE //
|
259
|
+
done < $PRT_TMP_FILE //doneに$PRT_TMP_FILEを出力
|
242
|
-
|
243
|
-
|
244
|
-
|
260
|
+
|
261
|
+
|
262
|
+
|
245
|
-
done < $LST_DATABASE //
|
263
|
+
done < $LST_DATABASE //doneに$LST_DATABASEを出力
|
246
264
|
|
247
265
|
|
248
266
|
|
249
267
|
exit 0
|
250
268
|
|
251
|
-
|
252
|
-
|
253
269
|
```
|