2012-12-19 47 views
-5

我在一個目錄中有大量的文件及其他語言的翻譯。有10種不同語言的文件和2或3種文件。文件的典型名稱是xx_xxxx_EN.html及其翻譯xx_xxxx_IT.html。我想提取一個2列txt文件的文件名稱。例如,對於英語 - 意大利語語言對: xx_xxxx_EN.html xx_xxxx_IT.html在Linux中配對文件

+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有一堆他們想要配對的非英文文件。 –