특정 디렉토리에 여러 파일이 있습니다. 이것들은 파일이에요
idex.1.ebwt idex.2.ebwt idex.3.ebwt idex.4.ebwt idex.rev.1.ebwt idex.rev.2.ebwt
나머지 이름을 동일하게 idex
유지하기 위해 파일 이름을 변경하고 싶습니다 . 기본적 으로 index
나는idex
index
한 줄 명령이 있습니까?
답변1
간단한 -loop와 일부 쉘 마법을 사용하여 for
이 작업을 수행 할 수 있습니다.
for file in idex.*; do
mv "$file" "index${file#idex}"
done
네, 한 줄로 넣을 수도 있습니다. ;)
${var#pattern}
$var
행간을 제거하여 평가합니다 pattern
(여기서 pattern
모드 glob(7)
). 네 가지 변형이 있습니다(POSIX 호환).
${var#pattern}
$var
선행pattern
(탐욕적이지 않음)을 제거하기 위해 평가합니다 .${var##pattern}
$var
선행 (탐욕)을 제거하기 위해 평가합니다pattern
.${var%pattern}
결과는$var
후행이 제거된pattern
(욕심 없음)으로 평가됩니다.${var%%pattern}
결과는$var
후행이 제거된 상태로 평가됩니다pattern
(탐욕적).
비탐욕과 탐욕의 차이점은 로 설정하면 $var
으로 foo.bar.baz
평가 되지만 ${var%.*}
로 평가된다는 점입니다 . 검색이 되기 때문이죠foo.bar
${var%%.*}
foo
${var%.*}
가장 짧은패턴 일치 .*
(그래서마지막 .
끝) ${var%%.*}
어디에서 검색할지가장 긴하나 (따라서첫 번째 .
마치다).
어느 버전이 욕심 없는 버전이고 욕심 많은 버전인지 기억하는 데 도움이 되도록 다음 사항을 기억하면 됩니다.더 길게( #
각 2회 %
) 검색더 길게성냥.
답변2
주요 Linux 배포판을 사용 중이거나 표준 util-linux
패키지가 설치되어 있는 경우 이 코드가 요구 사항을 충족해야 합니다.
rename idex index idex*