我需要一个使用sed,awk或perl的班轮来删除我的数据文件中的空白行。在我的文件中的数据是这样的 -删除数据集中的空白行
Aamir
Ravi
Arun
Rampaul
Pankaj
Amit
Bianca
这些空白是在随机和出现在我的数据文件的任何地方。有人可以建议一个班轮从我的数据集中删除这些空行。
我需要一个使用sed,awk或perl的班轮来删除我的数据文件中的空白行。在我的文件中的数据是这样的 -删除数据集中的空白行
Aamir
Ravi
Arun
Rampaul
Pankaj
Amit
Bianca
这些空白是在随机和出现在我的数据文件的任何地方。有人可以建议一个班轮从我的数据集中删除这些空行。
它可以用很多方式完成。
e.g使用awk:
awk '$0' yourFile
或sed的:
sed '/^$/d' yourFile
或者grep的:
grep -v '^$' yourFile
你可以这样做:
sed -i.bak '/^$/d' file
AWK解决方案:
这里我们通过输入文件循环来检查它们是否有任何字段集。 NF是AWK的内置变量,设置为第几个字段。如果该线路为空,则NF未设置。在这一个班轮中,我们测试NF是否为真,即设为一个值。如果是,那么我们打印该行,当该模式为真时,该行隐含在AWK中。
awk 'NF' INPUT_FILE
SED解决方案:
该解决方案是类似于在答复中提到的那些。作为语法显示,我们不打印任何空白的行。
sed -n '/^$/!p' INPUT_FILE
Perl解决方案。从命令行。
$ perl -i.bak -n -e'print if /\S/' INPUT_FILE
就地编辑文件并创建原始文件的备份。
一个Perl的解决方案:
perl -ni.old -e 'print unless /^\s*$/' file
...它创建原始文件的备份副本,后缀为 '名为.old'
为Perl它是比较容易的的sed,awk中,或grep的。
$作为TMP/TMPFILE阿米尔
拉维阿伦Rampaul
潘卡阿米特
比安卡$ perl的
-on -i的{^ \ s * \ n $} {}'tmp/tmpfile为$ TMP/TMPFILE 阿米尔拉维·兰帕尔 阿伦阿米特潘卡 比安卡
这里的名字用空格分隔符显示。但在shell中,名称显示在另一个之下,没有任何空行。 – Bharatt
感谢。我正在寻找一个可以编辑的Perl脚本。 – anjanb
删除'.bak',这将在没有备份的情况下就地编辑。 –