删除数据集中的空白行
我需要一个使用 sed、awk 或 perl 的单行代码来从我的数据文件中删除空白行。我的文件中的数据如下所示 -
Aamir
Ravi
Arun
Rampaul
Pankaj
Amit
Bianca
这些空白是随机并且出现在我的数据文件中的任何位置。有人可以建议一个单行语句从我的数据集中删除这些空白行吗?
I need a one liner using sed, awk or perl to remove blank lines from my data file. The data in my file looks like this -
Aamir
Ravi
Arun
Rampaul
Pankaj
Amit
Bianca
These blanks are at random and appear anywhere in my data file. Can someone suggest a one-liner to remove these blank lines from my dataset.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
可以通过多种方式实现。
例如使用 awk:
或 sed:
或 grep:
it can be done in many ways.
e.g with awk:
or sed:
or grep:
Perl 解决方案。从命令行。
就地编辑文件并创建原始文件的备份。
A Perl solution. From the command line.
Edits the file in-place and creates a backup of the original file.
AWK 解决方案:
这里我们循环遍历输入文件以检查它们是否设置了任何字段。 NF 是 AWK 的内置变量,设置为字段数。如果该行为空,则未设置 NF。在这一行中,我们测试 NF 是否为真,即设置为一个值。如果是,那么我们打印该行,当模式为真时,该行在 AWK 中是隐式的。
SED 解决方案:
此解决方案与答案中提到的解决方案类似。正如语法所示,我们不会打印任何空白行。
AWK Solution:
Here we loop through the input file to check if they have any field set. NF is AWK's in-built variable that is set to th number of fields. If the line is empty then NF is not set. In this one liner we test if NF is true, i.e set to a value. If it is then we print the line, which is implicit in AWK when the pattern is true.
SED Solution:
This solution is similar to the ones mentioned as the answer. As the syntax show we are not printing any lines that are blank.
你可以这样做:
You can do:
Perl 解决方案:
...创建原始文件的备份副本,后缀为“.old”
A Perl solution:
...which create as backup copy of the original file, suffixed with '.old'
对于 Perl 来说,它与 sed、awk 或 grep 一样容易。
for perl it is as easier as sed,awk, or grep.