내 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에서 이 작업을 어떻게 수행할 수 있는지 아시나요? 보시다시피, 0
4자리가 아닌 숫자가 포함된 파일을 앞에 추가하고 싶습니다. 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이 작성했습니다.