回答編集履歴
2
誤字の修正
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
みなさまの書き込みで理解できました。
|
2
2
|
ありがとうございました。
|
3
3
|
|
4
|
-
(1) grep \.conf ls.txt
|
4
|
+
(1) grep \\.conf ls.txt
|
5
|
-
(2) grep '\.conf' ls.txt
|
5
|
+
(2) grep '\\.conf' ls.txt
|
6
6
|
|
7
7
|
(1) と (2) ではシェルでのエスケープ処理が異なるため、
|
8
8
|
(1) は grepに \.がエスケープ処理された .conf が渡り、
|
@@ -12,4 +12,4 @@
|
|
12
12
|
よって、シェル側がエスケープ対象としている文字をクォーテーションでくくらずに書いた場合、シェルによってエスケープ処理されるため、grepに渡る内容が変わってしまいます。
|
13
13
|
|
14
14
|
※ 望んでいる形でコマンドの引数が渡っているかどうかを確認するには、echo コマンドで表示してみるとよい。
|
15
|
-
例) echo grep \.conf ls.txt
|
15
|
+
例) echo grep \\.conf ls.txt
|
1
誤字の修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
(1) と (2) ではシェルでのエスケープ処理が異なるため、
|
8
8
|
(1) は grepに \.がエスケープ処理された .conf が渡り、
|
9
|
-
(2) は grepに エスケープ処理されていない \.conf が渡ります。
|
9
|
+
(2) は grepに エスケープ処理されていない \\.conf が渡ります。
|
10
10
|
|
11
11
|
そのため、grep側の処理が異なります。
|
12
12
|
よって、シェル側がエスケープ対象としている文字をクォーテーションでくくらずに書いた場合、シェルによってエスケープ処理されるため、grepに渡る内容が変わってしまいます。
|