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

我有很多.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


以上是使文件夹中的所有文件与最长的文件一样长的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>