[英]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.