Unix 명령과 함께 파일에 텍스트 넣기

Unix 명령과 함께 파일에 텍스트 넣기

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)

관련 정보