回答編集履歴

5

誤記修正

2019/11/25 13:02

投稿

dodox86
dodox86

スコア9254

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  ```
58
58
 
59
- 尚、`sed`コマンド自体のオプション指定の`-nr`ですが、少なくとも**GNU**版`sed`をお使いなのでしょう。`-n`は`sed`内`s`コマンド中の`p`オプション`s/置換元/置換先/p`と組み合わせることで置換した文字列のみを出力するようにしています。`-r`は拡張正規表現をスクリプト中に許すもので、本質問で言えばIPv4アドレス相当の文字列中`[0-9]{1,3}`のような範囲指定を可能としています。`-r`が無いとエラーになります。
59
+ 尚、`sed`コマンド自体のオプション指定の`-nr`ですが、少なくとも**GNU**版`sed`をお使いなのでしょう。`-n`は`sed`内`s`コマンド中の`p`オプション`s/置換元/置換先/p`と組み合わせることで置換した文字列のみを出力するようにしています。`-r`は拡張正規表現をスクリプト中に許すもので、本質問で言えばIPv4アドレス相当の文字列中`[0-9]{1,3}`のような~~範囲~~繰り返し回数指定を可能としています。`-r`が無いとエラーになります。
60
60
 
61
61
  ```
62
62
 

4

誤記修正

2019/11/25 13:02

投稿

dodox86
dodox86

スコア9254

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  ```
58
58
 
59
- 尚、`sed`コマンド自体のオプション指定の`-nr`ですが、少なくとも**GNU**版`sed`をお使いなのでしょう。`-n`は`sed`内`s`コマンド中の`p`オプション`s/置換元/置換先/p`と組み合わせることで置換した文字列のみを出力するようにしています。`-r`は拡張正規表現をスクリプト中に許すもので、本質問で言えばIPv4アドレス相当の文字列中`[0-9]{1,3}`のような範囲指定を可能としています。`-n`が無いとエラーになります。
59
+ 尚、`sed`コマンド自体のオプション指定の`-nr`ですが、少なくとも**GNU**版`sed`をお使いなのでしょう。`-n`は`sed`内`s`コマンド中の`p`オプション`s/置換元/置換先/p`と組み合わせることで置換した文字列のみを出力するようにしています。`-r`は拡張正規表現をスクリプト中に許すもので、本質問で言えばIPv4アドレス相当の文字列中`[0-9]{1,3}`のような範囲指定を可能としています。`-r`が無いとエラーになります。
60
60
 
61
61
  ```
62
62
 

3

sedのオプション"-nr"指定について追記

2019/11/20 02:06

投稿

dodox86
dodox86

スコア9254

test CHANGED
@@ -55,3 +55,19 @@
55
55
  1,192.168.1.20
56
56
 
57
57
  ```
58
+
59
+ 尚、`sed`コマンド自体のオプション指定の`-nr`ですが、少なくとも**GNU**版`sed`をお使いなのでしょう。`-n`は`sed`内`s`コマンド中の`p`オプション`s/置換元/置換先/p`と組み合わせることで置換した文字列のみを出力するようにしています。`-r`は拡張正規表現をスクリプト中に許すもので、本質問で言えばIPv4アドレス相当の文字列中`[0-9]{1,3}`のような範囲指定を可能としています。`-n`が無いとエラーになります。
60
+
61
+ ```
62
+
63
+ GNU sed 4.4 について、man sed でのオプション説明抜粋
64
+
65
+ -E, -r, --regexp-extended
66
+
67
+
68
+
69
+ use extended regular expressions in the script (for portability
70
+
71
+ use POSIX -E).
72
+
73
+ ```

2

表中のメタ文字"+"の記述抜け修正

2019/11/20 02:04

投稿

dodox86
dodox86

スコア9254

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  |9|/|"/"|
24
24
 
25
- |10|([0-9]+)|"0"から"9"の1文字(※第2グループ)|
25
+ |10|([0-9]+)|"0"から"9"の文字が1文字以上(※第2グループ)|
26
26
 
27
27
  |11| .+$|1文字スペース、続いて任意の文字が1文字以上続き、行末まで|
28
28
 

1

実行例を修正

2019/11/20 01:31

投稿

dodox86
dodox86

スコア9254

test CHANGED
@@ -32,17 +32,17 @@
32
32
 
33
33
 
34
34
 
35
- 対象とする行データは、`::ffff:192.168.1.11 DONTCARE submit2/5 .DONTCARE<改行>`のようなものでしょう。`sed`コマンドの部分だけを実行してみると以下のようになります。
35
+ 対象とする行データは、`::ffff:192.168.1.11 DONTCARE submit2/5 DONTCARE<改行>`のようなものでしょう。`sed`コマンドの部分だけを実行してみると以下のようになります。
36
36
 
37
37
  ```bash
38
38
 
39
39
  $ cat data.txt
40
40
 
41
- ::ffff:192.168.1.11 DONTCARE submit2/5 .DONTCARE
41
+ ::ffff:192.168.1.11 DONTCARE submit2/5 DONTCARE
42
42
 
43
- ::ffff:192.168.1.15 DONTCARE submit2/2 .DONTCARE
43
+ ::ffff:192.168.1.15 DONTCARE submit2/2 DONTCARE
44
44
 
45
- ::ffff:192.168.1.20 DONTCARE submit2/1 .DONTCARE
45
+ ::ffff:192.168.1.20 DONTCARE submit2/1 DONTCARE
46
46
 
47
47
 
48
48