2014-04-16 1 views
0

각 파일 이름에서 숫자를 가져 오는 작은 bash 스크립트를 작성하고 있습니다. 예를 들어 helloworld1.txt 파일 이름은 1입니다.Bash - "permission denied"명령의 출력으로 변수 초기화

출력을 변수 i으로 설정할 때 각 파일에 대해 오류가 발생합니다.

line 5: 985.txt: Permission denied 

변수에 할당하는 대신 echo $f | tr -dc '[0-9]' 명령을 반향하면 모든 것이 좋습니다.

#!/bin/bash 

for f in * 
do 
     i=`$f | tr -dc '[0-9]'` // Permission denied. 
     echo $i 
done 

답변

3

여기 에코가 누락되었습니다.

i=${f//[^0-9]/} 

파라미터 교체가 아닌 모든 숫자를 삭제 :

i=`$f | tr -dc '[0-9]'` 

라인은

i=`echo $f | tr -dc '[0-9]'` 
+0

얼마나 당황 스럽습니까! 매우 감사합니다! –

0

파일 당 서브 쉘, 파이프 및 추가 공정없이 루프 라인이어야한다.