質問編集履歴
3
文書の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,17 +54,25 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
#greplist=関数名を記載し事前準備(今回だとsprintfのみ)
|
57
|
+
#greplist=検索したい関数名を記載し事前準備(今回だとsprintfのみ)
|
58
58
|
|
59
59
|
|
60
|
+
|
61
|
+
#対象ファイル一覧取得
|
60
62
|
|
61
63
|
find `pwd` -mindepth 2 -a -type f >checklist.txt
|
62
64
|
|
63
65
|
|
64
66
|
|
67
|
+
#対象ファイル内ループ(checklist.txt)
|
68
|
+
|
69
|
+
####対象ファイル一覧からgreplistに記載されている関数名が使われている箇所を検索し、全て出力(grefunction.txtに)#########
|
70
|
+
|
65
71
|
while read line;do
|
66
72
|
|
67
73
|
|
74
|
+
|
75
|
+
#事前用意した関数名一覧内をループ(greplist.txt)
|
68
76
|
|
69
77
|
while read key;do
|
70
78
|
|
@@ -80,15 +88,25 @@
|
|
80
88
|
|
81
89
|
done<checklist.txt
|
82
90
|
|
91
|
+
#################################################################################################################
|
83
92
|
|
93
|
+
|
94
|
+
|
95
|
+
#上記で出力したgrefunction.txt内の、sprintf(~,~,~)の第一引数を取得し、一覧化
|
84
96
|
|
85
97
|
awk '-F[(,]' '{print $2} grefunction.txt>arg.txt
|
86
98
|
|
87
99
|
|
88
100
|
|
101
|
+
#第一引数を一覧化したもの(arg.txt)から、重複を削除するためにuniqを使用
|
102
|
+
|
89
103
|
sort arg.txt | uniq>hensu.txt
|
90
104
|
|
91
105
|
|
106
|
+
|
107
|
+
#対象ファイルループ(hensu.txt)
|
108
|
+
|
109
|
+
###重複削除した第一引数一覧を$sargとし、$sargが使われている箇所を全て出力
|
92
110
|
|
93
111
|
while read sarg;do
|
94
112
|
|
@@ -107,3 +125,13 @@
|
|
107
125
|
|
108
126
|
|
109
127
|
```
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
やりたいこととしては、
|
132
|
+
|
133
|
+
①対象配下で使われているsprintf関数を全て取得
|
134
|
+
|
135
|
+
➁sprintfの第一引数を全て取得しリスト化(重複は削除)
|
136
|
+
|
137
|
+
③第一引数を対象配下に対し再度抽出する。(同様の第一引数名が様々なところで使用されているため)
|
2
ソース記載
test
CHANGED
File without changes
|
test
CHANGED
@@ -41,3 +41,69 @@
|
|
41
41
|
>awk '-F[(,]' '{print $2}' test,txt
|
42
42
|
|
43
43
|
→こちらを変化させて取得できる方法はありませんでしょうか。
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
【補足】
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
●現ソース
|
52
|
+
|
53
|
+
```bash
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
#greplist=関数名を記載し事前準備(今回だとsprintfのみ)
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
find `pwd` -mindepth 2 -a -type f >checklist.txt
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
while read line;do
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
while read key;do
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
grep -wsh $key $line >>grefunction.txt
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
done<greplist.txt
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
done<checklist.txt
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
awk '-F[(,]' '{print $2} grefunction.txt>arg.txt
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
sort arg.txt | uniq>hensu.txt
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
while read sarg;do
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
cd($dirname $0)
|
98
|
+
|
99
|
+
grep -wnsr $sarg ./* >>totalcheck.txt
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
done<hensu.txt
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
```
|
1
誤字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
例)
|
32
32
|
|
33
|
-
・sprintf ( (abc)abcd,~
|
33
|
+
・sprintf ( (abc)abcd,~,~)
|
34
34
|
|
35
35
|
|
36
36
|
|