【发布时间】:2014-03-21 04:50:19
【问题描述】:
我有一个 WordPress 网站,想使用 bash 递归地更改所有 php 文件的第一行。我应该怎么做?我对 bash 不是很熟悉。
谢谢!
【问题讨论】:
-
你试过什么?遍历文件 (stackoverflow.com/questions/14823830/…) 并进行更改...?
我有一个 WordPress 网站,想使用 bash 递归地更改所有 php 文件的第一行。我应该怎么做?我对 bash 不是很熟悉。
谢谢!
【问题讨论】:
我使用了上述两个答案并执行了以下操作:
find . -name "*.php" -exec sed -i '1 s/.*/<?php/' '{}' \;
非常感谢 Theox 和 anishsane 的帮助
【讨论】:
将第一行更改为其他行:
sed -i '1s/.*/changed line/' *.php
在第一行之前添加一行:
sed -i '1s/^/changed line\n/' *.php
【讨论】:
为了修改文件的第一行,你可以这样:
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
【讨论】:
awk 将 o/p 写入标准输出,而不是写回文件。