Bash 如何插入特定行而不是第n行?
我在许多文件中都有一条带有时间戳的注释:Bash 如何插入特定行而不是第n行?,bash,perl,awk,sed,Bash,Perl,Awk,Sed,我在许多文件中都有一条带有时间戳的注释: /****** Object: StoredProcedure [dbo].[some_stored_procedure] Script Date: 07/28/2015 11:01:13 ******/ 我想用一句空话来代替它们 /* */ 我知道评论在每个文件的第三行。我可以用awk'移除它!NR==3'但是我想在文件中保留行号,所以我想添加一个空注释。如何做到这一点?您可以使用以下方法: awk 'FNR==3{print "/* */
/****** Object: StoredProcedure [dbo].[some_stored_procedure] Script Date: 07/28/2015 11:01:13 ******/
我想用一句空话来代替它们
/* */
我知道评论在每个文件的第三行。我可以用awk'移除它!NR==3'但是我想在文件中保留行号,所以我想添加一个空注释。如何做到这一点?您可以使用以下方法:
awk 'FNR==3{print "/* */";next}1' file > new_file
解释
FNR==3{print/**;next}:当到达字段的第三行时,打印void comment并按next跳过进一步的步骤
1:打印当前行
如果您可以访问现代gawk实现,则可以进行就地更换:
gawk -i inplace 'FNR==3{print "/* */";next}1' file
选中:您可以使用此选项:
awk 'FNR==3{print "/* */";next}1' file > new_file
解释
FNR==3{print/**;next}:当到达字段的第三行时,打印void comment并按next跳过进一步的步骤
1:打印当前行
如果您可以访问现代gawk实现,则可以进行就地更换:
gawk -i inplace 'FNR==3{print "/* */";next}1' file
检查:更改第3行
sed '3 c\
/* */' YourFile > NewFile
或
也许可以增加一些安全性
sed '3 { \#^[[:blank:]]*/[*]\{1,\}# c\
/* */
}' YourFile > NewFile
如果以/**开头,则更改第3行更改第3行
sed '3 c\
/* */' YourFile > NewFile
或
也许可以增加一些安全性
sed '3 { \#^[[:blank:]]*/[*]\{1,\}# c\
/* */
}' YourFile > NewFile
如果以/**开头,则更改第3行;或者,perl-i-ple'$\u=/**/if$。==3'file.Yep,这将是我选择的用于就地替换@melpomenealternative的工具,perl-i-ple'$\u=/**/if$.==3'file.Yep,这将是我选择的用于就地替换的工具@melpomenesed'3 c/**/'更简单。。。“3 c/**/”要简单得多。。。谢谢