gpt4 book ai didi

linux - 从文件列表中查找多个目录中的文件?

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:25 25 4
gpt4 key购买 nike

FreeBSD 9.2 RELEASE p2

我有一个文件 fromdirs.txt。在这个文件中是一个换行分隔的目录列表,如下所示:

/etc
/home
/home/goods/

我需要首先在所有目录的文件中找到名称如“good”或包含字符串“(NODES_'TASK')”的文件,然后将所有这些文件复制到目录 /tmp 中。

2.sh 文件 chmod +x 是755fromDirs.txt 文件chmod +x 是755

这段代码给我错误

IFS=$'\n' read -d '' -r -a dirs < fromDirs.txt
find "${dirs[@]}" -type f \( -name '*good*' -o -exec grep -F "(NODES_'TASK')" {} \; \) -exec cp {} /tmp/ \;

2.sh: 无法打开 fromDirs.txt : 没有那个文件或目录

2.sh:${dirs[...}:替换错误

但是文件 fromDirs.txt 存在并且 2.sh 从它的分配目录运行,我也试图提供完整路径而不是 fromDirs.txt 并且错误相同

这段代码给我错误

FILE=fromDirs.txt
IFS='\n'
while read -r dirs
do
find "$dirs" -type f \( -name '*good*' -o -exec grep -F "(NODES_'TASK')" {} \; \) -exec cp {} /tmp/ \;
done < "$FILE"

2.sh: 6: 语法错误:“完成”意外(期望“做”)

这段代码也给我错误

FILENAME=fromDirs.txt

awk '{kount++;print kount, $0}
END{print "\nTotal " kount " lines read"}' $FILENAME

2.sh: : not found awk: 无法打开文件 fromDirs.txt source line number 2

那么如何逐行读取文件并执行我需要的操作呢?

最佳答案

这对我有用

 for line in "`cat fromDirs.txt`"; do find "$line" -type f \( -name '*good*' -o -exec grep -F "(NODES_'TASK')" {} \; \) -exec cp {} /tmp/ \;; done

关于linux - 从文件列表中查找多个目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com