2017-04-11 76 views
1

我想评论abc.c中的第2行,并在文件的第3行添加文本New second line如何评论一行并在其下插入另一行?

abc.c

First line 
Second line 
Third line 

我修改的文件应该像

First line 
//Second line 
New second line 
Third line 

我已经使用命令

sed 's/Second line/\/\/Second line\ 
New second line/g' abc.c > tmp.c && mv tmp.c abc.c 

尝试,但它给出了错误的 “sed命令乱码”关于sunOS 5.10

任何人都可以请告诉我什么是正确的命令使用?

回答

0

尝试:

sed "s/Second line/\/\/&\\ 
New second line/g" abc.c > tmp.c && mv tmp.c abc.c 
+0

@Kripalini嗨。它能为您提供帮助吗? – Nick

0

sed -i.bak -e"s/Second line/\/\/&\nNew second line/;" abc.c

文件之后内容:

First line 
//Second line 
New second line 
Third line 
+0

做'p'也会复制文件中的每一行,然后必须用'-n'来压制。重点是什么? '\ n'不适用于所有平台(例如macOS),而嵌入式文字换行符则适用。 {}是不必要的。 – Nick

+0

我没有设法在我的机器上使用您的答案,(在Windows上的GNU sed版本4.2.1)。可能是因为我不知道如何使用嵌入式换行符。根据你的解释,我将不胜感激。我的版本是在我的机器上运行的单线程版本。所以我认为我提供了对我有用的东西,作为替代答案。我承认'-n'和'p'的使用是无效率的冗余。我将编辑答案。感谢您指出。 – Yunnosch

+0

我认为OP可能与我所了解的嵌入换行符有相同的困难。因此,如果你解释它,你可能会为许多upvotes(至少OP接受和我upvote)设置。 – Yunnosch

相关问题