回答編集履歴
4
誤記訂正
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
通常は区切り文字として`/`を使いますが、正規表現中に`/`がたくさん出てくるなどで別の文字を使いたい場合は、先頭に`\`を書きます。**正規表現末の区切り文字には`\`を付けません。**
|
37
37
|
`sed '\#reg#d'`
|
38
38
|
ルールとしてはそれだけです。
|
39
|
-
た
|
39
|
+
また、(コマンド先頭の位置の)`:`は、sed構文上「ラベル定義」という別の意味を持っています(後述)。
|
40
40
|
|
41
41
|
```Plain
|
42
42
|
cat FILE.txt | sed "/Reg\/Exp/d" => OK
|
3
補足
test
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
```plain
|
9
9
|
cat FILE.txt | sed "s/Reg\/Exp//" => OK
|
10
|
-
→ Reg/Exp を 空文字列に置換
|
10
|
+
→ 区切り文字が / で、Reg/Exp を 空文字列に置換。正規表現中に区切り文字が出てくるので \ を前置
|
11
11
|
|
12
12
|
cat FILE.txt | sed "s\/Reg\/Exp//" => NG。`s' コマンドが終了していません
|
13
13
|
→ 区切り文字が \ だが3つめの \ が無いのでエラー。区切り文字は3つ必要
|
2
補足
test
CHANGED
@@ -65,5 +65,5 @@
|
|
65
65
|
cat FILE.txt | sed "\:Reg/Exp:d" => OK
|
66
66
|
→ 区切り文字が : で、Reg/Exp を含む行を削除
|
67
67
|
```
|
68
|
-
以上の
|
68
|
+
以上のルールは全部`man sed`に書いてあります。日本語manがインストールされてない場合は、https://linuxjm.osdn.jp/html/GNU_sed/man1/sed.1.html を参照。
|
69
69
|
|
1
誤記訂正
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
`sed /reg/d`のようにコマンドの前に付けてコマンドの対象行を指定する場合は若干違います。
|
36
36
|
通常は区切り文字として`/`を使いますが、正規表現中に`/`がたくさん出てくるなどで別の文字を使いたい場合は、先頭に`\`を書きます。**正規表現末の区切り文字には`\`を付けません。**
|
37
|
-
`sed '\#reg#d'
|
37
|
+
`sed '\#reg#d'`
|
38
38
|
ルールとしてはそれだけです。
|
39
39
|
ただし、(コマンド先頭の位置の)`:`は、sed構文上「ラベル定義」という別の意味を持っています(後述)。
|
40
40
|
|