我需要将以下代码附加到一个目录及其子目录中的所有php文件的末尾:
</div>
<div id="preloader" style="display:none;position: absolute;top: 90px;margin-left: 265px;">
<img src="ajax-loader.gif"/>
</div>
我已经尝试过
echo "my text" >> *.php
但是终端显示了这个错误:
bash : *.php: ambiguous redirect
我该怎么办呢。有数百个文件要添加此代码段,在每个文件中添加它将是一件非常困难的事情。提前谢谢。
发布于 2012-06-03 05:08:59
您不需要指定外壳,可以尝试使用foreach
命令。在tcsh下(我相信bash也有一个非常类似的版本),你可以交互地说:
foreach i (*.php)
foreach> echo "my text" >> $i
foreach> end
$i
将在每次循环中采用每个文件的名称。
与往常一样,在对大量文件执行操作时,最好在一个包含示例文件的小目录中对它们进行测试,以确保其按预期工作。
哦..。错误消息中的bash
(我将用它标记您的问题)。等效的循环是
for i in *.php
do
echo "my text" >> $i
done
如果想要覆盖当前目录下的多个目录,可以指定
*/*.php
而不是*.php
发布于 2014-01-11 06:42:01
我通常使用tee,因为我认为它看起来更干净,而且通常适合在一条线上。
echo "my text" | tee -a *.php
发布于 2012-06-03 14:31:57
你可以做(工作,即使你的文件路径中有空间):
#!/bin/bash
# Create a tempory file named /tmp/end_of_my_php.txt
cat << EOF > /tmp/end_of_my_php.txt
</div>
<div id="preloader" style="display:none;position: absolute;top: 90px;margin-left: 265px;">
<img src="ajax-loader.gif"/>
</div>
EOF
find . -type f -name "*.php" | while read the_file
do
echo "Processing $the_file"
#cp "$the_file" "${the_file}.bak" # Uncomment if you want to save a backup of your file
cat /tmp/end_of_my_php.txt >> "$the_file"
done
echo
echo done
PS:您必须从要浏览的目录运行脚本
https://stackoverflow.com/questions/10865947
复制相似问题