将文本与 unix 命令一起放入文件中

将文本与 unix 命令一起放入文件中

tcshUnix 上的 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)

相关内容