regex - 如何删除文件开头的以 "//"开头的行(例如文件头)?

标签 regex shell awk sed

我想从所有文件中删除标题,标题有以 // 开头的行.
如果我想删除所有以 // 开头的行,我可以执行以下操作:

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/

相关文章:

bash - UNIX AWK 脚本 - 内存耗尽

linux - 使用 AWK 对列求和并显示带有标签的总计

file - awk 将单个文件分成具有特定文件名的多个文件

python - 使用 Python,如何分割多个定界符并在输出列表中只保留一个?

ruby - 需要一个正则表达式来匹配动态确定的重复计数

linux - 创建一个前缀为=file1的文件,后跟随机数

bash - Expect、Bash 和 kpcli

javascript - 如何在正则表达式中使用变量?

regex - 从 Notepad++ 文件中删除行号

java - spring boot远程shell自定义命令