在tcsh
Unix 上的 shell 中,我想打印文件夹名称以及我搜索的文件数量,然后将其提供给文件。
然而,我只是设法找到计数然后写入文件,不知道如何附加文件夹名称。
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)