Files
用文件內容替換文件中的行
我有幾個包含一些 PHP
include
的文件,我想用文件內容替換它們。該文件看起來像foo <?php include("file1.php"); ?> bar baz <?php include("file2.php"); include("file3.php"); ?> more content
所以 after
foo
應該是 file1.php 的內容,afterbaz
應該是 file2.php 的第一個內容,然後是 file3.php。在這兩種情況下,我還想刪除<?php
and?>
標籤。解決這個問題的好方法是什麼?假設以下文件內容:
file1.php
: 是空的file2.php
:<p>Hello
file3.php
:World</p>
所以生成的文件應該如下所示:
foo bar baz <p>Hello World</p> more content
單詞
foo
等bar
只是真實文件中的髒話,可能有任何文本。
無論如何,這些都是 PHP 替換,所以只需通過 php 執行它:
$ php file-main.php foo bar baz <p>Hello World</p> more content $ php file-main.php > file-main-new.php
k=1 while read line do if [[ "${line}" == "<?php" ]] || [[ "${line}" == "?>" ]]; then : elif [[ "${line}" =~ "include" ]]; then ((k++)) file=$line while read include_line do echo $include_line | grep -Ev '<\?php|\?>' >> newfile.php done <${file:9:9} # cat file$k.php >> newfile.php else echo $line >> newfile.php fi done </tmp/inputfile