我有一个WordPress网站,想要使用bash递归更改所有php文件的第一行。我应该怎么做?我对bash不太熟悉。
谢谢!
答案 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的帮助