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