Unix의 셸 에서 tcsh
폴더 이름과 검색한 파일 수를 인쇄한 다음 이를 파일에 제공하고 싶습니다.
그러나 방금 폴더 이름을 추가하는 방법을 잘 모르면서 개수를 찾은 다음 파일에 쓸 수 있었습니다.
my_folder.txt
다음과 같은 디렉터리 이름 목록이 포함되어 있습니다.
dir_1
dir_2
dir_3
foreach a (`cat my_folder.txt`)
find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l >check_latest.txt
end
이제 위 코드는 파일 수만 출력합니다. 예를 들면 다음과 같습니다.
10
5
4
하지만 나는 다음과 같은 것을 인쇄하고 싶습니다.
dir_1 10
dir_2 5
dir_3 4
이것을 달성하는 방법을 알 수 있습니까?
답변1
나는 당신이 무엇을 하고 있는지 완전히 확신하지 못하지만 아마도 당신이 원하는 것은 다음과 같습니다.
foreach a (`cat my_folder.txt`) echo "$a " $(find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l) >check_latest.txt; end
개인적으로는 더 읽기 쉽도록 여러 줄로 나누겠습니다.
foreach a (`cat my_folder.txt`)
do
count=$(find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l)
echo "$a $count"
done >check_latest.txt
답변2
tcsh에서 수행하는 방법은 다음과 같습니다.
foreach a (`cat my_folder.txt`)
set count=`find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l`
echo "$a $count"
end
리디렉션을 통해 무엇을 원하는지 잘 모르겠습니다. 결과를 파일로 끝내려면 루프 끝에서 리디렉션해야 합니다.
foreach a (`cat my_folder.txt`)
set count=`find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l`
echo "$a $count"
end > check_latest.txt
답변3
#!/usr/bin/python
import os
m=open('/home/praveen/folder.txt','r')
for i in m:
ko=os.listdir(i.strip())
co_file=len(ko)
print "{0} {1}".format(i.strip(),co_file)