使用bash在所有php文件中递归更改第一行

时间:2014-02-20 10:09:16

标签: php bash

我有一个WordPress网站,想要使用bash递归更改所有php文件的第一行。我应该怎么做?我对bash不太熟悉。

谢谢!

3 个答案:

答案 0 :(得分:5)

将第一行更改为其他行:

sed -i '1s/.*/changed line/' *.php

在第一行之前添加一行:

sed -i '1s/^/changed line\n/' *.php

答案 1 :(得分:3)

要修改文件的第一行,您可以使用:

awk 'NR==1 {$0="what you want"} 1' *.php

您可以在此处找到更多信息:bash: replace an entire line in a text file

然后以递归方式执行此操作,您可以先使用find,然后对每个找到的文件执行awk命令。

find . -name "*.php" -exec awk 'NR==1 {$0="what you want"} 1'

此处有关find命令的更多信息:https://www.gnu.org/software/findutils/manual/html_mono/find.html#Scope

答案 2 :(得分:2)

我使用了上述两个答案并执行了以下操作:

find . -name "*.php" -exec sed -i '1 s/.*/<?php/' '{}' \;

非常感谢Theox和anishsane的帮助