我在清理文件时遇到问题,其中最后一个数据行下方有不必要的可用空间。这是当我将数据从 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