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 读取并生成您查找的输出。