質問編集履歴

1

リダイレクトとパイプの説明を読みそれでも不明なところのみ質問させていただきます。

2016/10/03 07:14

投稿

amaguri
amaguri

スコア227

test CHANGED
File without changes
test CHANGED
@@ -8,25 +8,47 @@
8
8
 
9
9
  これはLST_DATABASE=$LST_DATABASEなのか?
10
10
 
11
- ・bashでの>,<,>>の意味
11
+
12
-
13
- ・done < $変数 の処理
12
+
14
-
15
- ・hive -S -v -f $変数 > $変数の処理
13
+ ・hive -S -v -f $変数A > $変数B の処理 -vはなんでしょうか?調べてもでてきません。
16
-
14
+
17
- ・if [ "`echo $line | grep '^desc formatted'`" != "" ]の動き
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 //>の意味がわからない。$LST_DATABASEに対してshow databases;を実行で取得したデータ>$LST_DATABASE。 //余計なMsgを出力させたくない時はサイレントモード-Sを利用する。-eオプションで通常のコマンドからクエリを実行することが可能
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 //>の意味がわからない。ディレクトリを作った$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 //>の意味がわからない。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 //>>の意味がわからない。${tblname}のテーブルの情報表示>>$TBL_HQL_FILE //テーブルの情報を表示する。DESCRIBEは省略して「DESC」を使用可能。formattedを付けると、詳細情報が整形された分かりやすい状態で表示される。
116
-
117
- done < $LST_TABLE //<の意味がわからない。 done < $LST_TABLE<$TBL_TMP_FILEの処理も意味がわからない。 done=ループ終了。
118
-
119
-
120
-
121
- hive -S -v -f $TBL_HQL_FILE > $TBL_TMP_FILE //>の意味がわからない。-vが何か不明。おそらく$TBL_HQL_FILEをサイレントオプショんとなんらかのオプション実行> $TBL_TMP_FILE //-fでクエリを記述したファイルを読み込ませて実行 //-f=ファイル
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 //>>の意味がわからない。 $line >> $LST_DESC書き出し
173
+ echo $line >> $LST_DESC //$lineの書き出しデータを$LST_DESCに追加上書き。
156
-
174
+
157
- done < $TBL_TMP_FILE //<の意味がわからない。 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 //>の意味がわからない。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 //よく意味がわからない。$lineの書き出だし|desc formattedから始まる行の探し出し。!=空白の場合
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 //よく意味がわからない。$lineの書き出だし|Partition Informationから始まる行の探し出し。!=空白の場合
209
+ if [ "`echo $line | grep '^# Partition Information'`" != "" ];then //$lineの書き出だしPartition Informationから始まる行の探し出し。!=空白の場合の処理に出力
192
-
210
+
193
- echo "show partitions $tblname;" >> $PRT_HQL_FILE //>>の意味がわからない。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 //<の意味がわからない。 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 //>の意味がわからない。-vが何か不明。おそらく$PRT_HQL_FILEをサイレントオプショんとなんらかのオプションで実行> $TBL_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 //よく意味がわからない。$lineの書き出だし|show partitions!=空白の場合
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 //>>の意味がわからない。$lineの書き出し。>> $LST_PART
257
+ echo $line >> $LST_PART //$lineの書き出し$LST_PARTに追加上書き
240
-
258
+
241
- done < $PRT_TMP_FILE //<の意味がわからない。 done < $PRT_TMP_FILEの処理も意味がわからない。
259
+ done < $PRT_TMP_FILE //done$PRT_TMP_FILEを出力
242
-
243
-
244
-
260
+
261
+
262
+
245
- done < $LST_DATABASE //<の意味がわからない。 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
  ```