centos 查找并使用文本填充缺失的行(最多第n行)

j5fpnvbx  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

我需要一个bash脚本找到一个文件夹中的文本文件(仅限当前级别),有不到10行,并添加N/A,以填补多达10行,而忽略的文本文件,有所有10行。
我试着用'find'来查找txt文件行,添加到数组中然后做循环,最后我头疼(!^.^)

original
1. line
2. line
3. line
4. line

expected
1. line
2. line
3. line
4. line
5. n/a
..
10. n/a

试过

array=( $(find . -mindepth 1 -maxdepth 1 -name '*.txt' | xargs wc -l) )
qlckcl4x

qlckcl4x1#

就像这样:

#!/usr/bin/env bash

limit=10
for f in ./*.txt; do
  total="$(wc -l <"$f")"
  ((total >= limit)) && {
    printf >&2 '%s has %d lines, skipping!\n' "$f" "$total" &&
    continue
  }
  while ((total++ < limit)); do
    printf '%d. n/a\n' "$total"
  done >> "$f"
done

相关问题