如何使用查找和回显来附加文件

问题描述 投票:0回答:2

嗨,到目前为止,这是我的文件系统,我想实现的是在名称中带有1的每个文本文件中附加“ Hello world”。

root @ s11:〜/ Test#ls -R

.:A B

./ A:A1 A2

./ B:B1 B2

到目前为止,我所做的是

root @ s11:〜/ Test#查找。 -iname“ * 1” -exec echo“ Hello World” >> {} \;

root @ s11:〜/ Test#查找。 -iname“ * 1” -exec文件{} \;

./ A / A1:空文件

./ B / B1:空文件

我的机器是Solaris 11.3

linux unix find solaris
2个回答
0
投票

为什么不那么容易。尝试以下方法:

find / -name '*1' | while read line; do
    echo "Hello World" >> $line
done

如果适合您,请投票


0
投票

您传递给-exec的是一个要执行的程序和各个参数。特别是,您不要传递shell命令。

但是,>>是一个shell构造,因此,如果要使用它,则需要运行一个shell:

find . -iname '*1*' -exec sh -c 'echo "Hello World" >> {}' \;

这里,传递给-exec的各个参数是sh-cecho "Hello World" >> {},允许您运行Shell命令。

还请注意,我做了-ianme '*1*',因为您的问题是“名称中有1”,而不是“以1结尾”。

© www.soinside.com 2019 - 2024. All rights reserved.