2015-02-02 4 views
2

bash 스크립트는 파일 목록 인 출력을 파일에 씁니다.텍스트의 각 행에 오름차순으로 문자를 앞에 붙입니다.

file.txt를 :

나는으로 시작, 각 라인에 편지를 앞에 추가 할
/home/user/dir1/dir2/foo00 
/home/user/dir1/dir2/foo01 
/home/user/dir1/dir2/foo02 

하고, 도달 Z를 갖는 결국 ... AA, AB와

일 후,

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에 초보자 인 : 출력은

file.txt를가 같아야합니다 ng, 나는 어떤 도구가 적절할지 모른다. 그러므로 제 질문은 분명히 다소 부정확합니다.

가능한 경우 bash 내장 기능을 선호합니다.

어떻게하면됩니까?

+0

중복 : http://stackoverflow.com/questions/2099471/add-a-prefix-string-to-beginning-of-each-line –

+2

@AmirAfghani, 질문이 특정 접두어를 요구하기 때문에 나는 그것이 중복이라고 생각하지 않습니다. –

답변

3

서브 쉘없이 만의 bash 내장 명령을 사용하여 :

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

고마워, _ 다른 남자 _! – manes

1

이 bash는 아니지만, 펄의 내장 당신이 원하는 무엇을 할 수 증가 :

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

이 스크립트는 표준 입력에서 읽고 당신이 찾는 출력을 생성합니다.