如何用sed或awk替换文件中的两个代码块

萨布梅阿

我想合并两个代码块以接受由于git冲突引起的两个更改,如下所示。

使用像Atom这样的编辑器,它可以通过选项“先是我们的”(或“先他们的”)来解决,而我想通过命令行来解决。

我想到了sed和awk,但我想不出来。请告诉我如何通过sed解决awk其他问题。

来自这个档案

one
<<<<<<< HEAD
two
three
=======
four
five
>>>>>>> Add develop

喜欢这个

one
four
five
two
three

我使用了sed两次,并尝试了以下操作,但是没有得到我想要的结果。

在第一时间,与移动开始之间的线<<<<<<<和一端与=======>>>>>>>线。接下来,删除这些<<<<<<<=======>>>>>>>在第二时间线。

结果包含额外的空白行。此外,此方法不考虑这种代码块多次出现的情况。

$ sed -E -e '/^<{7}.*$/,/^={7}.*$/{H;d};/^>{7}.*$/{G}' test.txt | sed -E -e '/^[<=>]{7}.*$/{d}'
one
four
five

two
three
RavinderSingh13

您可以尝试以下吗?

awk '
/>>/ && found1 && found2{
  print val2 ORS val1
}
/</{
  val1=val2=found2=""
  found1=1
  next
}
found1 && /=/{
  found2=1
  next
}
found1 && !found2{
  val1=(val1?val1 ORS:"")$0
  next
}
found2{
  val2=(val2?val2 ORS:"")$0
  next
}
1
'  Input_file

说明:上面添加了详细的方式说明。

awk '                                 ##Starting awk program from here.
/>>/ && found1 && found2{             ##Checking condition if line has >> string in it and variable found1 and found2 is NOT NULL then do following.
  print val2 ORS val1                 ##Printing val2, ORS and val1 variables here.
}                                     ##Closing BLOCK for above condition here.
/</{                                  ##Checking condition if line has < in it then do following.
  val1=val2=found2=""                 ##Nullifying variables val1,val2 and found2.
  found1=1                            ##Setting found1 as 1 to be used in further statements from here.
  next                                ##next keyword will skip all further statements from here onward.
}                                     ##Closing BLOCK for above condition here.
found1 && /=/{                        ##Checking condition if found1 variable is SET AND line has = in it then do following.
  found2=1                            ##Setting variable found2 to 1 here.
  next                                ##next will skip all further statements from here,
}                                     ##Closing BLOCK for above condition here.
found1 && !found2{                    ##Checking condition ig variable foudn1 is SET and found2 is NOT SET then do following.
  val1=(val1?val1 ORS:"")$0           ##Creating variable val1 whose value is keep concatenating its own value with a new line here.
  next                                ##next will skip all further statements from here.
}                                     ##Closing BLOCK for above condition here.
found2{                               ##Checking condition ig variable found2 is SET then do following.
  val2=(val2?val2 ORS:"")$0           ##Creating variable val2 whose value is keep concatenating to its own value with a new line.
  next                                ##next will skip all further statements from here.
}                                     ##Closing BLOCK for above condition here.
1                                     ##Mentioning 1 will print edited/non-edited line here.
'  Input_file                         ##Mentioning Input_file name here.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用sed替换文件中的引号?

来自分类Dev

如何用sed替换文件内容

来自分类Dev

如何用另一个文件中的一部分文本替换文件中两个标记之间的文本?

来自分类Dev

如何用另一个文件中的一部分文本替换文件中两个标记之间的文本?

来自分类Dev

如何用两个空格替换文件系统分支中每个文件中的所有选项卡?

来自分类Dev

如何用sed中的单行替换两个模式之间的行?

来自分类Dev

如何用sed中的单行替换两个模式之间的行?

来自分类Dev

如何在两个文件之间用awk或sed替换?

来自分类Dev

awk/sed:如何使用两个文件执行嵌套替换操作?

来自分类Dev

使用sed使用另一个文件的内容替换文件中的文本块

来自分类Dev

如何用两列替换文件中的字符串?

来自分类Dev

在awk中查找并替换为两个文件

来自分类Dev

如何使用 awk/sed 命令连接两个文件中的列?

来自分类Dev

如何用Python中包含相同数据的单行文本替换文件中的三行文本块

来自分类Dev

如何用一个命令替换两个不同文件中的字符串?

来自分类Dev

同时替换文本文件中的两个模式

来自分类Dev

如何用零替换文件中的负值开头

来自分类Dev

如何用awk比较两个csv文件的两列?

来自分类Dev

如何用SED或AWK将文件中的双句号替换为单句号?

来自分类Dev

如何用CSS或JS连接两个背景块?

来自分类Dev

如何使用sed替换文件中的斜杠

来自分类Dev

如何使用sed搜索替换文件中的多行

来自分类Dev

如何使用sed命令替换文件中的$值?

来自分类Dev

如何使用sed替换文件中多次出现的变量?

来自分类Dev

如何用两个替换R公式中的一个?

来自分类Dev

如何使用awk计算总和并替换文件中的列

来自分类Dev

如何合并来自awk中两个文件的数据

来自分类Dev

如何从awk中的两个文件添加文本

来自分类Dev

使用SED或AWK复制与xml文件中两个不同模式匹配的两行

Related 相关文章

  1. 1

    如何用sed替换文件中的引号?

  2. 2

    如何用sed替换文件内容

  3. 3

    如何用另一个文件中的一部分文本替换文件中两个标记之间的文本?

  4. 4

    如何用另一个文件中的一部分文本替换文件中两个标记之间的文本?

  5. 5

    如何用两个空格替换文件系统分支中每个文件中的所有选项卡?

  6. 6

    如何用sed中的单行替换两个模式之间的行?

  7. 7

    如何用sed中的单行替换两个模式之间的行?

  8. 8

    如何在两个文件之间用awk或sed替换?

  9. 9

    awk/sed:如何使用两个文件执行嵌套替换操作?

  10. 10

    使用sed使用另一个文件的内容替换文件中的文本块

  11. 11

    如何用两列替换文件中的字符串?

  12. 12

    在awk中查找并替换为两个文件

  13. 13

    如何使用 awk/sed 命令连接两个文件中的列?

  14. 14

    如何用Python中包含相同数据的单行文本替换文件中的三行文本块

  15. 15

    如何用一个命令替换两个不同文件中的字符串?

  16. 16

    同时替换文本文件中的两个模式

  17. 17

    如何用零替换文件中的负值开头

  18. 18

    如何用awk比较两个csv文件的两列?

  19. 19

    如何用SED或AWK将文件中的双句号替换为单句号?

  20. 20

    如何用CSS或JS连接两个背景块?

  21. 21

    如何使用sed替换文件中的斜杠

  22. 22

    如何使用sed搜索替换文件中的多行

  23. 23

    如何使用sed命令替换文件中的$值?

  24. 24

    如何使用sed替换文件中多次出现的变量?

  25. 25

    如何用两个替换R公式中的一个?

  26. 26

    如何使用awk计算总和并替换文件中的列

  27. 27

    如何合并来自awk中两个文件的数据

  28. 28

    如何从awk中的两个文件添加文本

  29. 29

    使用SED或AWK复制与xml文件中两个不同模式匹配的两行

热门标签

归档