【发布时间】:2021-09-15 04:52:08
【问题描述】:
我有很多 .txt 文件,其中包含许多行和单列数据。但是,文件的长度是不一样的。有些文件有 2000 行,有些文件有 2001 行等。
有时我想删除末尾的一个空行。
我想将 0 行追加到除最长文件之外的所有文件的末尾,以便所有文件的行号相等。
我希望通过一个简单的 shell 脚本来解决这个问题。
【问题讨论】:
-
您想在所有仅包含 2000 行的文件中添加一个空行吗?
我有很多 .txt 文件,其中包含许多行和单列数据。但是,文件的长度是不一样的。有些文件有 2000 行,有些文件有 2001 行等。
有时我想删除末尾的一个空行。
我想将 0 行追加到除最长文件之外的所有文件的末尾,以便所有文件的行号相等。
我希望通过一个简单的 shell 脚本来解决这个问题。
【问题讨论】:
首先你必须找到行数最多的文件。之后,您可以将行追加到其他文件,直到它们的行数与行数最多的文件一样多。
这里我们追加包含文本0 的行,直到文件的行数与行数最多的文件一样多。
要先删除末尾的空行,可以使用sed:
sed -i '${/^$/d}' /home/kisa/data/*.txt
max=$(wc -l /home/kisa/data/*.txt | head -n-1 | sort -n | awk 'END {print $1}')
for f in /home/kisa/data/*.txt; do
n=$(wc -l < "$f")
yes 0 | head -n $((max-n)) >> "$f"
done
【讨论】: