2015-01-10 2 views
0

이 질문이 다른 방법으로 요청 된 경우 사과드립니다. 나는 보았지만 구체적인 대답을 찾을 수 없었다. 다음과 같이여러 해 동안 12 번 순서로 파일 배치의 이름을 바꾸는 방법은 무엇입니까?

어쨌든, 제가하고 싶은 것은 :

내가 순차적으로 즉 Fetch_1961-01_Actual.txt, Fetch_1961-02_Actual.txt, 그 제목에 연도와 달라는 이름의 파일 폴더가. .., Fetch_2002-12_Actual.txt.

내가하고 싶은 일은 해마다 01.1961.txt, 02.1961.txt, ..., 12.2002.txt와 같은 간단한 색인으로 이름이 지정되도록 이름을 바꾸는 것입니다.

도움을 주시면 감사하겠습니다.

미리 감사드립니다.

그레그

PS.

mypath <- "path/to/files" 
a <- list.files(path = mypath) 
mn <- 1:12 
yr <- sort(rep(1961:2002, 12)) 
for (i in yr) { 
    b <- paste(rep(mn, 2002-1961), ".", yr, ".txt", sep = "") 
} 
file.rename(a,b) 

매우 우아하지 않습니다, 그러나 그것은 나에게 몇 시간을 저장 :이 R에 다음 코드를 사용하여 정렬 얻는 것을 처리했다.

건배

다음
+1

OS가 무엇입니까? – CephBirk

+0

Windows를 사용하는 경우 [cmd에서 여러 파일 이름 바꾸기] (http://stackoverflow.com/questions/17271586/rename-multiple-files-in-cmd?rq=1) – Simon

+0

에 대한 대답을 볼 수 있습니다. 미안 해요, 이거 처음이에요. OS X Yosemite에서 터미널을 사용하고 있습니다. 내 잘못이야! – GreggMilligan

답변

0

내가 할 것 인 것이다 :

  1. 사용 sed 각 파일
  2. 을 파일에 저장
  3. 실행에 sed 출력에 대한 mv 명령을 할 수 있다는 점에서 명령 파일 이름을 바꿉니다. 파일을 가정

모든뿐만 아니라 당신의 사례로 선정되어,이 명령은 당신이 원하는 생성합니다 : 파일의 폴더 이름을 변경하고 출력 외모 있는지 확인하려면

ls | sed 's/Fetch_\([0-9]*\)-\([0-9]*\)_Actual.txt/mv & \2.\1.txt/' 

실행을 좋은. (당신이 두 번 commandList 파일을 바로 텍스트 편집기에서 보이는 확인한 후) 실행 다음

ls | sed 's/Fetch_\([0-9]*\)-\([0-9]*\)_Actual.txt/mv & \2.\1.txt/' > commandList 

방금 ​​만든 commandList 파일 :

bash commandList 

을 만약 그렇다면, 파일에 저장 희망이 도움이!

+0

건배, 그 자리에있어. – GreggMilligan

관련 문제