簡體   English   中英

遍歷不同目錄中的文件

[英]Looping through files in different directories

我想編寫一個腳本來遍歷兩個不同目錄中的文件,並回顯不同文件名模式的文件,我這樣做像這樣,但這是不合適的

#Files in one dir ABC-123-1.txt
#Files in subdir ABC-123.doc
for f in *.doc
  do
  f1=`echo $f|sed 's/.doc//g`'
  for f2 in ../*.txt
     do
     f3=`echo $f2|sed 's/..\///g'|sed 's/-1.txt//g'`
     if [ "$f1" != "$f3" ]
        then
        echo $f3
     fi
    done
  done

如果我正確理解了您打算如何處理腳本,則要遍歷dir1中以“ .doc”結尾的文件,然后在dir2中打印具有相同文件名並以“ -1.txt”結尾的文件。

這可以通過使用以下一種襯套在bash中實現:

for i in `ls <dir1>/*.doc | sed 's/\.doc$//'`; do ls <dir2>/"$i"-1.txt; done  2> /dev/null

(用目錄替換dir1和dir2)

“ 2> / dev / null”將忽略第二個目錄中不匹配的文件,並且僅打印匹配的文件。

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM