在文本的每一行前面加上一个字母,按升序排列



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

文件.txt:

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

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

最后,输出应如下所示

文件.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 内置,没有子外壳:

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

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

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

此脚本从 stdin 读取并生成您查找的输出。

最新更新