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内置的插件。
我该怎么做这个操作?
答案 0 :(得分:3)
仅使用bash builtins,没有子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
答案 1 :(得分:1)
这不是bash,但perl的内置递增可以做你想要的:
#!/usr/bin/env perl
my $pfx = 'a';
print $pfx++, ' ', $_ while (<>);
此脚本从stdin读取并生成您搜索的输出。