2011-06-28 61 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