如何清理数据行后的空闲行/列空间

如何清理数据行后的空闲行/列空间

我在清理文件时遇到问题,其中最后一个数据行下方有不必要的可用空间。这是当我将数据从 Excel 复制并粘贴到文本时创建的。我希望我的文本文件仅适合我的数据。这将减少我运行模型时的计算时间。我刚刚知道我的文件大小很大,因为最后一个数据行下方有多余的可用空间。

我希望你帮助我如何清理不需要的行。

答案1

awk '{l=l$0 RT};NF{printf "%s",l;l=""}' < your-file

将删除尾随空白行。

如果文件很大,您可能需要从末尾读取它,直到找到第一个非空行。

使用 GNU 工具:

tac your-file | sed -ne '/[^[:blank:]]/!{p;d;}' -e q | wc -c

将返回末尾空行的大小。

您可以使用它来截断文件。

例如bash

find . -type f -name '*.txt' -print0 |
  while IFS= read -rd '' file; do
    n=$(tac "$file" | sed -ne '/[^[:blank:]]/!{p;d;}' -e q | wc -c)
    [ "$n" -eq 0 ] || truncate -r "$file" "-s-$n" "$file"
  done

相关内容