我需要一个使用sed、awk或perl的单行程序来删除数据文件中的空行。
Aamir Ravi Arun Rampaul Pankaj Amit Bianca
这些空白是随机的,出现在我的数据文件中的任何地方。有人能推荐一个单行程序来从我的数据集中删除这些空白行吗?
kdfy810k1#
它可以通过许多方式来实现。例如使用awk:
awk '$0' yourFile
或sed:
sed '/^$/d' yourFile
或grep:
grep -v '^$' yourFile
jm81lzqq2#
Perl解决方案。从命令行。
$ perl -i.bak -n -e'print if /\S/' INPUT_FILE
现地编辑档案并建立原始档案的备份。
mjqavswn3#
AWK解决方案:
这里我们遍历输入文件,检查是否有字段设置。NF是AWK的内置变量,设置为字段的数量。如果行为空,则NF未设置。在这一行中,我们测试NF是否为真,即设置为一个值。如果是,则打印该行,当模式为真时,该行在AWK中是隐式的。
awk 'NF' INPUT_FILE
SED解决方案:
这个解决方案类似于前面提到的答案。正如语法所示,我们不打印任何空白行。
sed -n '/^$/!p' INPUT_FILE
gorkyyrv4#
您可以:
sed -i.bak '/^$/d' file
0ejtzxu15#
Perl解决方案:
perl -ni.old -e 'print unless /^\s*$/' file
...创建为原始文件的备份副本,后缀为“.old”
cygmwpex6#
对于perl,它与sed、awk或grep一样简单。
$ cat tmp/tmpfile Aamir Ravi Arun Rampaul Pankaj Amit Bianca $ perl -i -pe 's{^\s*\n$}{}' tmp/tmpfile $ cat tmp/tmpfile Aamir Ravi Arun Rampaul Pankaj Amit Bianca
6条答案
按热度按时间kdfy810k1#
它可以通过许多方式来实现。
例如使用awk:
或sed:
或grep:
jm81lzqq2#
Perl解决方案。从命令行。
现地编辑档案并建立原始档案的备份。
mjqavswn3#
AWK解决方案:
这里我们遍历输入文件,检查是否有字段设置。NF是AWK的内置变量,设置为字段的数量。如果行为空,则NF未设置。在这一行中,我们测试NF是否为真,即设置为一个值。如果是,则打印该行,当模式为真时,该行在AWK中是隐式的。
SED解决方案:
这个解决方案类似于前面提到的答案。正如语法所示,我们不打印任何空白行。
gorkyyrv4#
您可以:
0ejtzxu15#
Perl解决方案:
...创建为原始文件的备份副本,后缀为“.old”
cygmwpex6#
对于perl,它与sed、awk或grep一样简单。