sql_^d^_migration.sql 패턴을 사용하여 파일 이름을 일괄 변경합니다.

sql_^d^_migration.sql 패턴을 사용하여 파일 이름을 일괄 변경합니다.

내 Ubuntu 시스템에는 다음 파일 목록이 있습니다.

sql_1_migration.sql 
sql_2_migration.sql
sql_3_migration.sql
...
sql_100_migration.sql 
sql_1000_migration.sql
...

이름을 다음으로 바꿔야 합니다.

sql_0001_migration.sql 
sql_0002_migration.sql
sql_0003_migration.sql
...
sql_0100_migration.sql 
sql_1000_migration.sql
...

Bash에서 이 작업을 어떻게 수행할 수 있는지 아시나요? 보시다시피, 04자리가 아닌 숫자가 포함된 파일을 앞에 추가하고 싶습니다. Ubuntu GNU/Linux 운영 체제에서 이 작업을 수행해야 합니다.

답변1

이와 같이:

rename -n 's/^sql_(\d+)/sprintf "sql_%.04d", $1/e' sql_*_migration.sql

-n출력이 좋아지면 스위치를 제거하십시오.

남자 이름 바꾸기

경고하다 이 작업을 수행할 수도 있고 수행하지 못할 수도 있는 같은 이름의 다른 도구가 있으므로 주의하세요.

패키지의 일부인 이름 바꾸기 명령은 util-linux그렇지 않습니다.

다음 명령을 실행하면 ( GNU)

$ file "$(readlink -f "$(type -p rename)")"

Perl script, ASCII text executable을 포함 하고 포함하지 않는 결과를 얻으면 ELF이것이 올바른 도구인 것 같습니다 =)

그렇지 않은 경우 이를 기본값으로 설정하고(일반적으로 이미 적용되어 있음) Debian다음과 같이 파생시킵니다 Ubuntu.

$ sudo apt install rename
$ sudo update-alternatives --set rename /usr/bin/file-rename

다른 배포판에 이 명령이 없으면 패키지 관리자를 검색하여 설치하거나수동으로 수행(학과가 없어요...)


이 도구는 원래 Perl의 아버지인 Larry Wall이 작성했습니다.

관련 정보