bash egrep用新行替换字符串

bash egrep用新行替换字符串,bash,replace,grep,newline,Bash,Replace,Grep,Newline,我需要更换所有发生的故障 <?php <?php 您可以使用awk: awk '!(/^<\?php/ && last ~ /^<\?php/);{last = $0}' input.php 您也可以使用下面的命令(有关说明,请参阅) $cat文件1 根据您的用例,这可能会完成这项工作 uniq input.php 这将抑制所有重复的行。但它可能足以满足您的用例 例如: > cat example.txt alice alice bob al

我需要更换所有发生的故障

<?php
<?php

您可以使用
awk

awk '!(/^<\?php/ && last ~ /^<\?php/);{last = $0}' input.php

您也可以使用下面的命令(有关说明,请参阅)

$cat文件1

根据您的用例,这可能会完成这项工作

uniq input.php
这将抑制所有重复的行。但它可能足以满足您的用例

例如:

> cat example.txt 
alice
alice
bob
alice
alice
bob
alice

> uniq example.txt
alice
bob
alice
bob
alice
看看关于匹配多行正则表达式的第二个答案。
find -name '*.php' -exec bash -c '
    file=$1
    awk "!(/^<\?php/ && last ~ /^<\?php/);{last = \$0} " "$file" > "$file.tmp"
    mv "$file.tmp" "$file"
' - '{}' \;
$ cat file1
<?php
<?php
totototo
tatata

$ cat file2
<?php
blabalbalbalabla

$ sed '/^<?php/{$!{ N;s/^<?php\n<?php/<?php/;ty;P;D;:y}}' file*
<?php
totototo
tatata

<?php
blabalbalbalabla
uniq input.php
> cat example.txt 
alice
alice
bob
alice
alice
bob
alice

> uniq example.txt
alice
bob
alice
bob
alice