回答編集履歴

2

+correction

2019/09/26 16:06

投稿

KojiDoi
KojiDoi

スコア13671

test CHANGED
@@ -34,6 +34,6 @@
34
34
 
35
35
  ```
36
36
 
37
- cat param.txt |xargs -i awk -v k={} 'match($0,k){n++} END{print k,"=",n}' ~/work/test.txt
37
+ cat param.txt |xargs -i awk -v k={} 'match($0,k){n++} END{print k,"=",n}' test.txt
38
38
 
39
39
  ```

1

+add

2019/09/26 16:05

投稿

KojiDoi
KojiDoi

スコア13671

test CHANGED
@@ -5,3 +5,35 @@
5
5
  awk '/test1/{test1++} /test2/{test2++} END{printf "test1=%d\ntest2=%d\n", test1, test2}' test.txt
6
6
 
7
7
  ```
8
+
9
+
10
+
11
+ # 追記
12
+
13
+
14
+
15
+ test1とかtest2とかを別ファイル(ここではparam.txt)から代入する例。
16
+
17
+ ```
18
+
19
+ $ cat param.txt
20
+
21
+ test1
22
+
23
+ test2
24
+
25
+
26
+
27
+ $ awk 'BEGIN{while((getline x < "param.txt")>0){print; t[x]=1}} {for(tt in t) {n[tt]++}} END{for(tt in t){print tt,"=",n[tt]}}' test.txt
28
+
29
+ ```
30
+
31
+
32
+
33
+ nsys2で使えるか否か確認していませんが、もしxargsというコマンドが使えるようなら、こんなやり方もあるかもしれません。
34
+
35
+ ```
36
+
37
+ cat param.txt |xargs -i awk -v k={} 'match($0,k){n++} END{print k,"=",n}' ~/work/test.txt
38
+
39
+ ```