bash-grep 青旅半醒 2022-10-14 15:55 120阅读 0赞 ### (1)比较两个文件内容并输出相同或不同部分 ### 1,比较输出文件2.txt的独有的部分,区分文件1.txt和2.txt位置(谁在最后一个参数则是输出谁独有部分) **grep -Fxvf 1.txt 2.txt** 2,比较输出文件1.txt和文件2.txt的相同部分,文件1.txt和2.txt位置不区分 **grep -Fxf 1.txt 2.txt** 等价于 **grep -Fxf 2.txt 1.txt** 示例: #!/bin/bash #!/bin/bash startTime=`date +%Y%m%d-%H:%M:%S` startTime_s=`date +%s` ./downl_ls.sh ./lm_readid.sh ./lm_read_gt_pos_hcd.sh | tee gt_linkmap.log ./lm_read_gt_errc.sh ./lm_rf_iosb_pos.sh ./lm_rf_errc.sh ./lm_rf_ddr4.sh echo -e "\033[41;36m" echo "-- linkmap check ---" grep -Fxvf ./gt_linkmap.log ./gt_linkmap_hcd.log > a.log grep -Fxvf ./io_linkmap.sh ./io_linkmap_hcd.sh > b.log #[[ `cat a.log |wc -l` -eq 0 ]] && echo "gt link map check succes!" if [[ `cat a.log |wc -l` -eq 0 ]] ;then echo "gt link map check succes!" else echo "gt link map has wrong:" grep -Fxvf ./gt_linkmap.log ./gt_linkmap_hcd.log grep -Fxvf ./gt_linkmap_hcd.log ./gt_linkmap.log fi #[[ `cat b.log |wc -l` -eq 0 ]] && echo "io link map check succes!" if [[ `cat b.log |wc -l` -eq 0 ]] ;then echo "io link map check succes!" else echo "io link map has wrong:" grep -Fxvf ./io_linkmap.sh ./io_linkmap_hcd.sh grep -Fxvf ./io_linkmap_hcd.sh ./io_linkmap.sh fi echo -e "\033[0m" echo "" echo "test end!" endTime=`date +%Y%m%d-%H:%M:%S` endTime_s=`date +%s` sumTime=$[ $endTime_s - $startTime_s ] echo "$startTime ---> $endTime" "Total:$sumTime seconds" 注意点: 用grep比较时有时发现失灵现象,两个文件看起来是一样的,实际却不一样,比如windows下创建的文件和linux下创建的文件结束符是不一样的: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEzMjk5Njc_size_16_color_FFFFFF_t_70][] ## (2)获取某字符串所在的行号 ## ![202105221435166.png][] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEzMjk5Njc_size_16_color_FFFFFF_t_70]: /images/20221014/6232fcd29b994907934abd8767b188e7.png [202105221435166.png]: /images/20221014/ef84f90c200b416a917e76b41a173bc7.png
还没有评论,来说两句吧...