답변:
rename 's/(PMC|\.pdf)//g' *pdf.txt
데모 :
$ ls *txt
PMC21375.pdf.txt
$ rename -n 's/(PMC|\.pdf)//g' *txt
PMC21375.pdf.txt -> 21375.txt
로부터 shell
프롬프트. 그것은 매우 유용합니다 . 대체하는 것처럼 펄 코드를 넣을 수 있습니다 . 테스트가 유효 해지면 (드라 이런 모드 스위치)를
제거 할 수 있습니다 -n
.
이름이 같거나 불가능한 다른 도구가 있으므로주의하십시오.
다음 명령을 실행하면 ( linux
)
$ file $(readlink -f $(type -p rename))
그리고 당신은 같은 결과를 가지고
.../rename: Perl script, ASCII text executable
그렇다면 이것은 올바른 도구 인 것 같습니다 =)
그렇지 않은 경우, 기본값 (보통 이미 사례)을 다음 Debian
과 같이 파생 시킵니다 Ubuntu
.
$ sudo update-alternatives --set rename /path/to/rename
( 명령 /path/to/rename
경로로 perl's rename
바꿉니다.
마지막으로이 도구는 원래 Perl의 아빠 인 Larry Wall이 작성했습니다.
rename 명령 외에도 bash에서 직접 수행 할 수 있습니다 (많은 방법 중 하나).
for file in *pdf.txt; do mv $file ${file//[A-Z.]}.txt ; done
Pinyaka의 작동 방식을 보여주기 위해 편집 :
hmontoliu@ulises2:/tmp/foo$ touch PCM21375.pdf.txt PCM21376.pdf.txt
hmontoliu@ulises2:/tmp/foo$ ls
PCM21375.pdf.txt PCM21376.pdf.txt
hmontoliu@ulises2:/tmp/foo$ for file in *pdf.txt; do mv $file ${file//[A-Z.]}.txt ; done
hmontoliu@ulises2:/tmp/foo$ ls
21375.txt 21376.txt
.pdf
파일 이름에서를 제거하지는 않습니다 .
파일 이름 바꾸기를위한 여러 유틸리티가 있지만 사용하기 가장 쉬운 방법 중 하나는 rename
입니다. 귀하의 경우 다음을 수행 할 수 있습니다.
rename PMC '' *txt
rename .pdf '' *txt
첫 번째 매개 변수는 대체 할 파일 이름의 일부입니다. 두 번째 매개 변수는 대체 문자열입니다. 여기서는 ''
빈 문자열을 나타내는 데 사용 하고 있습니다. 다음 매개 변수는 모두 이름을 바꿀 *txt
파일입니다. 여기서는 대체를 텍스트 파일로 제한하는 데 사용 했습니다.
rename
Linux를 실행중인 경우 이미 존재해야합니다. * BSD 또는 OS X를 실행중인 경우 먼저 설치해야합니다.
rename
. 하나있다 util-linux
, 그리고 하나 perl
다른 구문. 당신이 util-linux
말하는 rename.ul
것은 rename
from 과 혼동하지 않기 위해 때때로 호출 되는 것처럼 보이지만 perl
, 다른 시스템에서는 rename
util-linux의 것이고 다른 하나는 from perl
입니다 prename
.
rename 's/PMC// *.txt
및rename s/\.pdf// *.txt
먼저 파일을 백업하십시오! 그런 다음 기본적으로 현재 디렉토리에서 파이썬 한 줄짜리를 일반적인 형식으로 사용할 수 있습니다.
python -c "import glob,os; [os.rename(fn, fn.replace('PATTERN', 'REPLACE')) for fn in glob.glob('PATH/*')]"
특정 경우에는 이것을 두 번 사용할 수 있습니다.
python -c "import glob,os; [os.rename(fn, fn.replace('.pdf', '')) for fn in glob.glob('*')]"
제거 .pdf
하고 다시 :
python -c "import glob,os; [os.rename(fn, fn.replace('PMC', '')) for fn in glob.glob('*')]"
제거 PMC
합니다.
.pdf
파일 이름에서를 제거하지는 않습니다 .