2011-06-28 62 views
0

我想爲所有不以點開頭的行添加一個點。我如何在shell腳本中做到這一點?我應該使用sed嗎?shell腳本中的文本操作

 
example file: 
.a 
a 
b 
.c 

變成

 
.a 
.a 
.b 
.c 

回答

7

您可以使用SED:

sed -i '/^[^.]/s/^/./' text_file 
+0

你能解釋模式一點點? – user157195

+1

'/^[^.]/'意味着「對於以不是句號的字符開頭的每一行」。 's /^/./'表示「用句點替換行的開頭」。令人困惑的是'^'可能意味着兩件事:在這裏它被用來將搜索模式錨定到一行的開頭,並且它也用於否定字符類。 '[abc]'匹配'a'或'b'或'c',而'[^ abc]'匹配任何不是*'a'或'b'或'c'的東西。 – larsks