自动处理windows换行符导致的代码冲突

<<<<<<< HEAD
=======
>>>>>>> 7aa64xxxxxxxx

一、获取冲突文件名的列表

grep -rsn "<<<<<< HEAD" | awk -F: '{print $1}'
grep -rsn "<<<<<< HEAD" | grep ":1:<<<<<<< HEAD" | awk -F: '{print $1}' > file_list_head.log

二、删除带windows换行符的行

cat file_list_head.log | xargs sed -i "s/^M/dznTest_test/"
cat file_list_head.log | xargs sed -i "/dznTest_test/d"

三、删除冲突符号

cat file_list_head.log | xargs sed -i '/^=======$/d'
cat file_list_head.log | xargs sed -i '/^<<<<<<< HEAD$/d'
cat file_list_head.log | xargs sed -i '/>>>>>>> /d'

用到以下知识点:

https://blog.csdn.net/liangbilin/article/details/108593296
awk -F, '{print $2}' test.txt     //$0代表所有列,$1代表第一列


删除以a开头的行
sed -i '/^a.*/d' tmp.txt
-i 表示操作在源文件上生效.否则操作内存中数据,并不写入文件中.
在分号内的/d表示删除匹配的行

在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”。有几种方法可以处理。
sed -i 's/^M//g' filename

#注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M


grep
-w 精确匹配
-Fx  完全匹配
cat file_list_head.log | xargs grep -Fx "======="
cat file_list_head.log | xargs grep -Fx "=======" | wc -l
cat file_list_head.log | xargs grep -Fx "<<<<<<< HEAD" | wc -l
cat file_list_head.log | xargs grep ">>>>>>> " | wc -l

ls | xargs sed -ir '/^=======$/d'
sed
-r 以正则表达式匹配  //可以不加r的

^匹配开头

$匹配结尾

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值