按升序在文本的每一行前添加一个字母

Prepend a letter to each line of a text, in ascending order

bash 脚本将其输出(文件列表)写入文件。

file.txt:

/home/user/dir1/dir2/foo00
/home/user/dir1/dir2/foo01
/home/user/dir1/dir2/foo02

我想在每一行前加上一个字母,从 a 开始,到达 z 之后,继续 aa,ab…

最后,输出应该是这样的

file.txt:

a /home/user/dir1/dir2/foo00
b /home/user/dir1/dir2/foo01
c /home/user/dir1/dir2/foo02
...
z /home/user/dir1/dir2/foo26
aa /home/user/dir1/dir2/foo27

作为 shell 脚本的新手,我不知道哪个工具可能合适。我所以我的问题肯定有些不精确。

如果可能的话,我更喜欢 bash 内置插件。

如何进行这个操作?

这不是 bash,但是 perl 的内置递增可以做你想做的事:

#!/usr/bin/env perl
my $pfx = 'a';
print $pfx++, ' ', $_ while (<>);

此脚本从 stdin 读取并生成您寻求的输出。

仅使用 bash 内置函数,没有子 shell:

prefixes=({a..z}  {a..z}{a..z}  {a..z}{a..z}{a..z})
i=0
while IFS= read -r line
do
  printf "%s %s\n" "${prefixes[i++]}" "$line"
done < file.txt