使文件夹中的所有文件与最长的文件一样长

Make all files in a folder as long as the longest file

我有很多 .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 }')
for f in /home/kisa/data/*.txt; do
  n=$(wc -l < "$f")
  yes 0 | head -n $((max-n)) >> "$f"
done