gpt4 book ai didi

linux - 可以找到将找到的文件的文件名推送到管道中吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:36 25 4
gpt4 key购买 nike

我想在一些 dir 中查找,并对这个目录中的文件执行 awk,然后用每个结果替换原始文件。

find dir | xargs cat | awk ... | mv ... > filename

所以我需要最后一个命令中的文件名(由 find 找到的每个文件)。我该怎么做?

最佳答案

我会使用循环,例如:

for filename in `find . -name "*test_file*" -print0 | xargs -0`
do
# some processing, then
echo "what you like" > "$filename"
done

编辑:如评论中所述,-print0 | 的好处xargs -0 由于 for 循环而丢失。包含空格的文件名仍未正确处理。

下面的 while 循环也不会处理不寻常的文件名(很高兴知道它,虽然它不在问题中),但至少具有标准空格的文件名,所以它工作得更好,确实:

find . -name "*test*file*" -print > files_list

while IFS= read -r filename
do
# some process
echo "what you like" > "$filename"
done < files_list

关于linux - 可以找到将找到的文件的文件名推送到管道中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436805/

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