2014-05-19 5 views
3

일부 텍스트 파일을 새 열로 쌓으려고합니다.단계 증가가있는 중괄호 확장이 작동하지 않습니다. bash

paste: energies_Strength0.0Bosons{110..80..10}.txt: No such file or directory 
paste: energies_Strength0.1Bosons{110..80..10}.txt: No such file or directory 
paste: energies_Strength0.05Bosons{110..80..10}.txt: No such file or directory 
paste: energies_Strength0.15Bosons{110..80..10}.txt: No such file or directory 

이 같은 명령은 단지 작동 : 나는 다음과 같은 오류가

paste energies_Strength0.0Bosons{110..80..10}.txt | column -s $'\t' -t > energies_Strength0.0.txt 

: 파일은 나는 다음과 같은 명령을 실행하면 XXX이 80,90,100 또는 110입니다 energies_Strength0.0BosonsXXX.txt 명명 된 파일을 단위 단계로 인덱싱하면 좋을 것입니다.

paste energies_Strength0.0Bosons{110..80}.txt | column -s $'\t' -t > energies_Strength0.0.txt 

편집 : XXX = {80,81,82, ..., 109, 110} 내가 명령을 실행하는 경우이며, 거기에

안녕하세요, 시도 다음 행을 기준으로 아이디어 :

#$ -S /bin/bash 
LANG=C 

for ((i=110; i>=80; i-=10)); 
do 
paste energies_Strength0.0Bosons$i.txt | column -s $'\t' -t > energies_Strength0.0.txt 
done 

그러나 Bosons80.txt 파일 만 붙여 넣습니다. 나는 다음과 같은 구조를 구축해야합니다

paste ...80.txt ...90.txt ...100.txt ...110.txt | column -s $'\t' -t > energies_Strength0.0.txt 
+0

'echo {110..80..10} .txt'을 실행하고 여러분이 얻는 것을보십시오. – anubhava

+0

나는 간단하게'{110..80..10} .txt'을 얻는다. 나는 그것이 확장이 단지 작동하지 않는다는 것을 의미한다고 생각한다. Btw,'echo {110..80} .txt'가 작동합니다. 나는 OSX 10.6.4를 사용 중이다. – cacosomoza

+0

은 아무도'{11..8} 0'의 가능성을 언급하지 않았다. –

답변

5

{110..80..10} 구문은 BASH 4+ 버전에서만 지원됩니다.

OSX에 BASH 버전 3.2.xx

당신은 반복이 다른 연산 사용할 수 있습니다 :

for ((i=110; i>=80; i-=10)); do echo $i.txt; done 
0

{A..B}AB는 정수 brace expansion라고 잘 정의 된 배쉬 구문입니다. {A..B..C}은이 패턴을 따르지 않으므로 글자으로 해석됩니다.

3

bash는> = 4 {100..80..10}

배쉬 < 4 수 seq 80 10 100

예 :

kent$ seq -f '%g.txt' 80 10 110 
80.txt 
90.txt 
100.txt 
110.txt 
관련 문제