2013-06-20 5 views
1

파일 이름은 "FAI_4O57A"와 같이 3 개의 영문자와 밑줄이 있고, 길이가 1-7 (길이) 이하이며 단일 알파벳이 계속됩니다.awk를 사용하는 자동 파일 이름

처음 네 개의 문자를 추출하고 000001보다 000001 등의 고유 숫자로 다른 숫자를 바꾸고 싶습니다. (자동으로 파일 이름을 지정합니다.)

awk를 사용하여이를 수행하는 방법. 또는 sed. 어떤 도움을 주시면 감사하겠습니다. 감사합니다. . 이 일을

답변

1

시도 :

rename -n '$c++; s/^(.{4}).*/sprintf("%s%05d", $1, $c)/e' [A-Z][A-Z][A-Z]_* 

당신은 펄의 renamethis

은 당신의 검사 결과가 확인되는 -n 스위치 (드라이 런 모드) 제거를 참조해야합니다.

Ex. : 당신이 정말로 원하는 경우

$ ls -1 
DEF_FAI_4O58A 
FAI_4O57A 
FTH_4O59A 
box.py 
index.html 
robots.txt 
test.html 

$ rename -n '$c++; s/^(.{4}).*/sprintf("%s%04d", $1, $c)/e' [A-Z][A-Z][A-Z]_* 
DEF_FAI_4O58A -> DEF_0001 
FAI_4O57A -> FAI_0002 
FTH_4O59A -> FTH_0003 

그것을 할 수 있습니다 :

printf '%s\n' [A-Z][A-Z][A-Z]_* | 
    awk '{c++; printf("%s%04d\n", substr($1, 0, 4), c)}' 

편집 :

:

당신이 YOUR_OWN_FILE에 열을 치료해야하는 경우 awk

rename -n '$c++; s/^(.{4}).*/sprintf("%s%04d", $1, $c)/e' $(awk '{print $2}' YOUR_OWN_FILE) 
+0

나는 파일이 열이 있고 사단의 coummns 파일 이름과 파일의 두 번째 열 절대 경로를 포함합니다. 예. FAE_12A 홈/사용자/some_direcotry/FAE_12A.wav 사단이 감사하는 _file_에서 또는 _file의 name_에서 – KKK

+0

을 columnn에 대한 가 어떻게 위의 형식을 변경해야합니까? –

+0

텍스트 파일 2 열, Ist 열 filename 및 두 번째 열 path_to_file. – KKK

2

한 가지 방법은 :

awk '{cnt=sprintf("%06d", ++s);$1=substr($1,1,4) cnt}1' inputFile 
관련 문제