Bash - 如何将不同的输出写入增量文件名

Bash - 如何将不同的输出写入增量文件名

我正在尝试将脚本的多个输出写入到它们自己的文件中,并使用递增的文件名。

INPUT="$1"

# while loop
while IFS= read -r -n1 char
do
        # display one character at a time
    echo "$char" > filename
done < "$INPUT"

这就是我到目前为止所做的,尽管它没有增量计数。由于脚本一次打印一个字符,我需要将其放入自己的文件中,并使用增量或字母数字文件名,因此不会覆盖文件。

答案1

这将为每个字符串创建一个文件名加上增量。

input="$1"
counter=1
while IFS= read -r -n1 char; do
  ((counter++ <= ${#input} ))
  echo "$char" > "filename$char$counter"
done < "$input"

要将输出打印到 stdout 和文件,请更改

echo "$char" > "filename$char$counter"

echo  "filename$char$counter" | tee "filename$char$counter"

如果您需要解析字符串,则需要对输入进行更多测试,然后

 < <(printf '%s' "$input")

代替

< "$input"

相关内容