如何以编程方式从文件中删除空的新行?

如何以编程方式从文件中删除空的新行?

我需要从终端中的文本文件中删除空的新行。

示例文件

123
123
123
123

123



123

我在 Google 上搜索了一下,但只找到了解决方案,sed '/^$/d' myFile > tt而且没有帮助。我仍然得到这些空的新行。

答案1

您可以使用grep以此目的。

尝试:grep -v ^$ filename


您的命令似乎也有效:

$ cat t
123
123
123
123

123



123
$ sed '/^$/d' t
123
123
123
123
123
123
$ sed '/^$/d' t >tt
$ cat tt
123
123
123
123
123
123
$

答案2

使用 AWK:NF 是 AWK 的内置变量,用于存储每条记录中的字段数。单独使用时,它将仅打印 NF!=0 的行。

[jaypal~/Temp]$ cat t
123
123
123
123

123



123

[jaypal~/Temp]$ awk 'NF' t
123
123
123
123
123
123

答案3

可能有 100 种方法可以做到这一点,这是其中之一:

grep -vE "$^" yourfile

答案4

这是另一个解决方案:

python -c "import sys; print ''.join(line for line in sys.stdin.readlines() if line.strip() != ''),"

python默认安装)

相关内容