4 월 14 일에서 22 일 사이에 파일 목록을 생성하려고합니다.
파일 이름의 이름에 날짜가 표시됩니다 (예 : J0018658.WANCL90A.16Apr2014.214001.STD.txt
.
이 스크립트를 사용해 보았습니다.쉘 스크립트 중첩 루프
for i in 14 15 16 17 18 19 20 21 22; do
for x in *$iApr*.txt; do
echo "$x"
done
done
저는 이것을 AIX에서 사용하고 있으며 기본 쉘은 ksh입니다. 그러나 sh 및 bash도 사용할 수 있습니다. 여기 KSH 작동 것입니다 :
for i in 14 15 16 17 18 19 20 21 22; do
for x in *${i}Apr*.txt; do
echo "$x"
done
done
여기에 떠들썩한 파티와도 잘 작동 것입니다 :
#!/bin/bash
shopt -s nullglob
for i in {14..22}; do
for x in *${i}Apr*.txt; do
echo "$x"
done
done
스크립트가 지금과 같다 : {14..22}에 내가위한'; do * $ {i} Apr * .txt에 x에 대해 \t; 그러나 출력이 그냥 \t 에코 "$의 X" \t 수행 done'을'* {14..22} 4월 는'bash'의 –
어떤 버전 당신은 * 사용을 완료 한 .txt'? 스크립트 상단에'! #/bin/bash' 또는'#!/bin/sh'가 있습니까? {14..22} 확장을하려면 버전 3.2 이상,'! #/bin/bash'가 필요합니다. –
내 'sh'가 너무 오래되었다고 생각합니다. 나는'/ bin/bash'로 전환했고 작동합니다. 감사합니다 –