1
2
3
4
5
6
7
8
9
</td>
|
$catpets.txt
This is mycat
mycat's name is betty
This is my dog
my dog's name is frank
This is my fish
my fish's name is george
This is my goat
my goat's name is adam
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
把其中的my字符串替換成Hao Chen’s,下面的語句應該很好理解(s表示替換命令,/my/表示匹配my,/Hao Chen’s/表示把匹配替換成Hao Chen’s,/g 表示一行上的替換所有的匹配):
1
2
3
4
5
6
7
8
9
</td>
|
$sed"s/my/Hao Chen's/g"pets.txt
This is Hao Chen'scat
Hao Chen's cat's name is betty
This is Hao Chen's dog
Hao Chen's dog's name is frank
This is Hao Chen's fish
Hao Chen's fish's name is george
This is Hao Chen's goat
Hao Chen's goat's name is adam
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
注意:如果你要使用單引號,那么你沒辦法通過\’這樣來轉義,就有雙引號就可以了,在雙引號內可以用\”來轉義。
再注意:上面的sed并沒有對文件的內容改變,只是把處理過后的內容輸出,如果你要寫回文件,你可以使用重定向,如:
1
</td>
|
$sed"s/my/Hao Chen's/g"pets.txt > hao_pets.txt
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
或使用 -i 參數直接修改文件內容:
1
</td>
|
$sed-i"s/my/Hao Chen's/g"pets.txt
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
在每一行最前面加點東西:
1
2
3
4
5
6
7
8
9
</td>
|
$sed's/^/#/g'pets.txt
#This is my cat
# my cat's name is betty
#This is my dog
# my dog's name is frank
#This is my fish
# my fish's name is george
#This is my goat
# my goat's name is adam
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
在每一行最后面加點東西:
1
2
3
4
5
6
7
8
9
</td>
|
$sed's/$/ --- /g'pets.txt
This is mycat---
mycat's name is betty ---
This is my dog ---
my dog's name is frank ---
This is my fish ---
my fish's name is george ---
This is my goat ---
my goat's name is adam ---
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
順手介紹一下正則表達式的一些最基本的東西:
| | | | | |