2016-10-10 2 views
0

를 작동하지 않는 나는 다음과 같은 코드를 가지고 : 나는 명령 -S으로 다음 -Sd으로 내림차순으로 크기를 인쇄했는데쉘 스크립트는 -S와 -SD 코드가 제대로

#Option -s for each set of files with the same name, presents sorted by size# 

elif [ $1 = "-S" ] 
then 
    shift 
    for i in $* 
    do 
     find $i -type f -print|while read F1 
      do 

       basename "${F1}" 
      done | sort | uniq -d | while read F2 
      do 
        find $i -type f -name "${F2}" -exec ls -l -S -R '{}' \; 
      done   
     done 

#Option -d performs sorting in descending order. 

elif [ $1 = "-d" ] 
then 
    shift 
    for i in $* 
    do 
     find $i -type f -print|while read F1 
      do 

       basename "${F1}" 
      done | sort | uniq -d | while read F2 
      do 
        find $i -type f -name "${F2}" -exec ls -l '{}' \; 
      done   
     done 

합니다. 내 결과물이 그렇게하지 않는 것 같습니다. 이 시점에서 나는 내 코드에서 무엇이 잘못되었는지 알 수 없다.

-rw-r--r-- 1 quetzal quetzal 33 Out 7 20:27 aa/cc/t1 
-rw-r--r-- 1 quetzal quetzal 8 Out 7 20:36 aa/t1 
-rw-r--r-- 1 quetzal quetzal 0 Out 8 08:16 aa/cc/t2 
-rw-r--r-- 1 quetzal quetzal 0 Out 8 08:15 aa/t2 
-rw-r--r-- 1 quetzal quetzal 16 Out 8 08:16 aa/cc/t4 
-rw-r--r-- 1 quetzal quetzal 0 Out 10 12:53 aa/dd/t4 
+0

당신이 설명 할 수 자세한 세부 사항에서 "작동하지?" 예상되는 출력은 무엇이며 실제 출력은 무엇입니까? [mcve]를 참조하십시오. –

+0

명령 -S를 사용하면 다음과 같이 출력됩니다. -rw-r-r-- 1 quetzal quetzal 8 out 7 20:36 aa/t1 -rw-r - r-- 1 quetzal quetzal 33 Out 7 20:27 aa/cc/t1 -rw-r - r-- 1 케 쥬얼 케탈 0 Out 8 08:16 aa/cc/t2 -rw-r - r-- 1 케 쥬살 케 쥬살 0 Out 8 08:15 aa/t2 -rw-r-r-- 1 케 쥬얼 케탈 0 Out 10 12:53 aa/dd/t4 -rw-r-r-- 1 케 쥬살 케 쥬살 16 Out 8 08:16 aa/cc/t4 -Sd를 사용하면 파일을 내림차순으로 출력해야합니다 –

답변

0
이 같은 종류의 역

:

elif [ $1 = "-d" ] 
then 
shift 
for i in $* 
do 
    find $i -type f -print|while read F1 
     do 

      basename "${F1}" 
     done | sort -r | uniq -d | while read F2 
     do 
       find $i -type f -name "${F2}" -exec ls -l '{}' \; 
     done   
    done