回答編集履歴

3

条件が変わったので修正

2020/03/13 04:18

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -39,3 +39,27 @@
39
39
  注:該当する行が複数あった場合、RESULT にはそのすべてが連結されて出てきます。
40
40
 
41
41
  ※grep 'a1' の場合、結果は'c1 c1' となります
42
+
43
+
44
+
45
+ ---
46
+
47
+ 条件が変わったので……
48
+
49
+
50
+
51
+ 空白が複数個あることがあるなら、一度正規化して喰わせてやればよいです。そこで sed を使います。
52
+
53
+ ```bash
54
+
55
+ #!/bin/sh
56
+
57
+
58
+
59
+ RESULT=`sed -e 's/ */ /g' test.txt | grep 'a1 b1' | cut -d ' ' -f 3`
60
+
61
+ echo $RESULT
62
+
63
+ ```
64
+
65
+ sed で 空白+空白が0個以上続く(*)文字列を、空白一個に置換しています。

2

複数マッチ時の挙動を記述

2020/03/13 04:18

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -33,3 +33,9 @@
33
33
 
34
34
 
35
35
  結果、c1 が出力されます。
36
+
37
+
38
+
39
+ 注:該当する行が複数あった場合、RESULT にはそのすべてが連結されて出てきます。
40
+
41
+ ※grep 'a1' の場合、結果は'c1 c1' となります

1

結果出力を追記

2020/03/13 00:55

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -29,3 +29,7 @@
29
29
  echo $RESULT
30
30
 
31
31
  ```
32
+
33
+
34
+
35
+ 結果、c1 が出力されます。