我想从所有文件中删除标题,标题有以 //
开头的行.
如果我想删除所有以 //
开头的行,我可以执行以下操作:
sed '/^\/\//d'
但是,这不是我需要做的事情。我只需要删除以 //
开头的文件开头的行.示例文件:
// This is the header
// This should be deleted
print "Hi"
// This should not be deleted
print "Hello"
预期输出:print "Hi"
// This should not be deleted
print "Hello"
更新:如果在开头或中间有新行,则不起作用。有没有办法处理这种情况?
示例文件:
< new empty line >
// This is the header
< new empty line >
// This should be deleted
print "Hi"
// This should not be deleted
print "Hello"
预期输出:print "Hi"
// This should not be deleted
print "Hello"
有人可以建议一种方法吗?提前致谢!更新:接受的答案适用于
white space
在开始或中间。
最佳答案
你可以试试下面的。这也处理了新的线路场景,在 https://ideone.com/IKN3QR 中编写和测试
awk '
(NF == 0 || /^[[:blank:]]*\/\//) && !found{
next
}
NF{
found=1
}
1
' Input_file
说明:如果一行为空或从 //
开始,只需检查条件找到的 AND 变量为 NULL,然后只需跳过这些行。一旦任何行没有//
found 然后设置变量 found here 所以所有接下来的行都应该从它被设置到的行打印,直到 Input_file 打印结束。
关于regex - 如何删除文件开头的以 "//"开头的行(例如文件头)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62841070/