2015-02-02 5 views
2

Сценарий bash записывает свой вывод, который представляет собой список файлов, в файл.Подготовить письмо к каждой строке текста в порядке возрастания

file.txt:

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

Я хочу предварять письмо к каждой строке, начиная с, и после того, как достиг г, происходит с аа, аб ...

в конце концов, вывод должен выглядеть

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 

Будучи новичком в scripti оболочки ng, я не знаю, какой инструмент может быть уместным. Я так сомневаюсь, что это несколько неточно.

Я бы предпочел использовать встроенные блоки bash, если это возможно.

Как это сделать?

+0

дубликат: http://stackoverflow.com/questions/2099471/add-a-prefix-string-to-beginning-of-each-line –

+2

@AmirAfghani, я не думаю, что это дубликат, потому что вопрос задает конкретный префикс. –

ответ

3

Использование только Баш встроенных команд, без подоболочек:

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 
+0

спасибо большое, _that другой guy_! – manes

1

Это не удар, но Perl встроенного приращения может делать то, что вы хотите:

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

Этого скрипт считывает из стандартного ввода и производит вывод, который вы ищете.

 Смежные вопросы

  • Нет связанных вопросов^_^