mv
‘x’로 시작 하는 모든 파일을 ‘x’디렉토리에 저장 하고 싶습니다 . 같은 것 :
mv path1/x*.ext path2/x
모든 알파벳 문자 a, …, z에 대해 수행하십시오.
알파벳을 통해 ‘x’루프를 만드는 bash 스크립트를 어떻게 작성할 수 있습니까?
답변
for x in {a..z}
do
echo "$x"
mkdir -p path2/${x}
mv path1/${x}*.ext path2/${x}
done
답변
시작해야합니다.
for letter in {a..z} ; do
echo $letter
done
답변
중첩 중괄호 확장을 사용하여 스페인어 알파벳을 생성하는 방법은 다음과 같습니다.
for l in {{a..n},ñ,{o..z}}; do echo $l ; done | nl
1 a
...
14 n
15 ñ
16 o
...
27 z
또는 간단히
echo -e {{a..n},ñ,{o..z}}"\n" | nl
사용하지 않는 29 자 스페인어 알파벳 을 생성하려는 경우
echo -e {{a..c},ch,{d..l},ll,{m,n},ñ,{o..z}}"\n" | nl
프랑스어 알파벳이나 독일어 알파벳도 비슷합니다.
답변
사용 rename
:
mkdir -p path2/{a..z}
rename 's|path1/([a-z])(.*)|path2/$1/$1$2' path1/{a..z}*
파일 이름에서 선행 [az] 문자를 제거하려는 경우 업데이트 된 perlexpr은 다음과 같습니다.
rename 's|path1/([a-z])(.*)|path2/$1/$2' path1/{a..z}*
답변
대문자로도
for letter in {{a..z},{A..Z}}; do
echo $letter
done
답변
이 질문과 답변은 부분적으로 내 문제에 도움이되었습니다. bash 에서 알파벳 의 일부
를 확대 해야했습니다 .
확장 은 엄격하게 텍스트 이지만
해결책을 찾았고 더 간단하게 만들었습니다.
START=A
STOP=D
for letter in $(eval echo {$START..$STOP}); do
echo $letter
done
결과 :
A
B
C
D
내가 해결해야했던 동일한 문제를 찾는 사람에게 도움이되기를 바라며 여기에서도 끝납니다.