sed's///g'とsed's///'の違い
sed's//g'はsed's////'と大きく異なりますが、注意しないと間違いに違いありません.例を見てください.
ファイルの先頭の空白を削除
以上の解析から,sedコマンドのsモードではgがグローバルな役割を果たし,この範囲は各行,すなわち行為単位であり,グローバルとして機能することが分かる.
検証:
ファイルの先頭の空白を削除
ps: /^ */
/^\s/ , 、 、 。 [ \f
\r\t\v]
/^[[:space:]]*/ \t
amp1:~
# cat 2 ## 2
aaaaaaaaaa
bbbbbbbbbb
cccc ccccc ccccc
dddddd dddddd dddddd
yyyyyyyy yyyyyyyyyyyyy yyyyyyyyyyyyyy
ooooooo ooooooo oooooo ooooooo
amp1:~
# sed 's/\s*//g' 2
aaaaaaaaaa
bbbbbbbbbb
cccccccccccccc
dddddddddddddddddd
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
ooooooooooooooooooooooooooo
## "\s"
## g, “\s”
amp1:~
# sed 's/\s*//' 2
aaaaaaaaaa
bbbbbbbbbb
cccc ccccc ccccc
dddddd dddddd dddddd
yyyyyyyy yyyyyyyyyyyyy yyyyyyyyyyyyyy
ooooooo ooooooo oooooo ooooooo
## , g, “\s”
## g
## g , ,
amp1:~
# sed 's/^\s*//' 2
aaaaaaaaaa
bbbbbbbbbb
cccc ccccc ccccc
dddddd dddddd dddddd
yyyyyyyy yyyyyyyyyyyyy yyyyyyyyyyyyyy
ooooooo ooooooo oooooo ooooooo
## “^”
## 、 , “^” , , 。
## g ,
amp1:~
# sed 's/^\s*//g' 2
aaaaaaaaaa
bbbbbbbbbb
cccc ccccc ccccc
dddddd dddddd dddddd
yyyyyyyy yyyyyyyyyyyyy yyyyyyyyyyyyyy
ooooooo ooooooo oooooo ooooooo
## “\s”
## g, ,g
## “ ”。 。
以上の解析から,sedコマンドのsモードではgがグローバルな役割を果たし,この範囲は各行,すなわち行為単位であり,グローバルとして機能することが分かる.
+g :
g: , , ,
検証:
amp1:~
# cat 3.txt ##3.txt
hello hello hello
hello hello
hello hello hello
amp1:~
# sed 's/hello/nihao/' 3.txt
nihao hello hello
nihao hello
nihao hello hello
## , g,
amp1:~
# sed 's/hello/nihao/g' 3.txt ## , g,
nihao nihao nihao
nihao nihao
nihao nihao nihao
amp1:~
# sed 's/^hello/nihao/' 3.txt
nihao hello hello
hello hello
nihao hello hello
## , "hello", hello 。
amp1:~
# sed 's/^hello/nihao/g' 3.txt ## , g,
nihao hello hello
hello hello
nihao hello hello