首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Linux中将文本追加到多个文件的末尾

在Linux中将文本追加到多个文件的末尾
EN

Stack Overflow用户
提问于 2012-06-03 05:05:52
回答 4查看 63K关注 0票数 45

我需要将以下代码附加到一个目录及其子目录中的所有php文件的末尾:

代码语言:javascript
复制
</div>
<div id="preloader" style="display:none;position: absolute;top: 90px;margin-left: 265px;">
<img src="ajax-loader.gif"/>
</div>

我已经尝试过

代码语言:javascript
复制
echo "my text" >> *.php

但是终端显示了这个错误:

代码语言:javascript
复制
bash : *.php: ambiguous redirect

我该怎么办呢。有数百个文件要添加此代码段,在每个文件中添加它将是一件非常困难的事情。提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-03 05:08:59

您不需要指定外壳,可以尝试使用foreach命令。在tcsh下(我相信bash也有一个非常类似的版本),你可以交互地说:

代码语言:javascript
复制
foreach i (*.php)
foreach> echo "my text" >> $i
foreach> end

$i将在每次循环中采用每个文件的名称。

与往常一样,在对大量文件执行操作时,最好在一个包含示例文件的小目录中对它们进行测试,以确保其按预期工作。

哦..。错误消息中的bash (我将用它标记您的问题)。等效的循环是

代码语言:javascript
复制
for i in *.php
do 
   echo "my text" >> $i
done

如果想要覆盖当前目录下的多个目录,可以指定

代码语言:javascript
复制
*/*.php

而不是*.php

票数 22
EN

Stack Overflow用户

发布于 2014-01-11 06:42:01

我通常使用tee,因为我认为它看起来更干净,而且通常适合在一条线上。

代码语言:javascript
复制
echo "my text" | tee -a *.php
票数 107
EN

Stack Overflow用户

发布于 2012-06-03 14:31:57

你可以做(工作,即使你的文件路径中有空间):

代码语言:javascript
复制
#!/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:您必须从要浏览的目录运行脚本

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10865947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档