2012-12-19 5 views
-5

다른 언어로 된 많은 수의 파일과 번역본이 디렉토리에 있습니다. 10 개의 다른 언어로 된 파일과 2 또는 3의 파일이 있습니다. 파일의 일반적인 이름은 xx_xxxx_EN.html이고 번역은 xx_xxxx_IT.html입니다. 파일의 이름을 가진 2 열 txt 파일을 추출하고 싶습니다. 영어에 대한 예를 들어 - 이탈리아어 쌍 : xx_xxxx_EN.html xx_xxxx_IT.html리눅스에서 파일 페어링

+1

... 또는 무엇을 당신이 검색 한? –

+0

'ls >> output.txt' 그럼 트릭을해야합니까? – Kush

+1

질문이 있으십니까? – Kenosis

답변

5
#!/bin/bash 

ls -1 *EN.html | while IFS= read -r file 
do 
    ls -1 ${file%_*}* | while IFS= read -r match 
    do 
    if [ "$file" != "$match" ]; then 
     echo "$file" "$match" 
    fi 
    done 
done 

$ ls *html 
01_DE.html 01_EN.html 01_ESP.html 01_IT.html 02_EN.html 02_IT.html 02_PL.html 

$ ./pair.sh 

01_EN.html 01_DE.html 
01_EN.html 01_ESP.html 
01_EN.html 01_IT.html 
02_EN.html 02_IT.html 
02_EN.html 02_PL.html 
+2

흥미로운 접근 방법, 좋은 해결책. +1 – Kush

+0

모든 항목에 영어 번역본이있는 경우에만 작동합니다. – Ilion

+0

@lion 제 이해는 그것이 요점이었습니다. OP에는 그들과 쌍을 이루고 싶어하는 영어가 아닌 파일들이 많이 있습니다. –