写一个项目里词条对比的shell
2022/7/2 5:20:37
本文主要是介绍写一个项目里词条对比的shell,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
需求:找出当前开发分支里未上传到词条平台的词条
#! /bin/bash #-----------------------------------------------------------------------# # 手动版说明: # 1、将此shell放在项目根目录里跟.git目录平级; # 2、如果查找的分支显示没有修改,有可能是已经合到master了,所以没有差异; # 3、如果想自己查找某个目录里的所有词条,直接在相应目录执行 grep "\bt('[^']\+'" -ro .| awk -F "'" '{print $2}' | sort -u #-----------------------------------------------------------------------# # 对应平台的标识 aaa 3 bbb 7 ccc 60 # aaa | bbb | ccc projectName=$(git remote -v |head -n 1 | awk '{print $2}' | sed 's/.*\///'| sed 's/\.git//') case $projectName in "aaa") npid=3; ;; "bbb") npid=7; ;; "ccc") npid=60; ;; "exit") echo "异常:未知项目~"; exit ;; esac echo "当前项目:$projectName" # 输入查找的分支 read -p '请输入你所要查找的分支名:' branch [ -z "$branch" ] && echo '异常:未输入分支名~' && exit; # 获取系统最新版本 latestVersionRps=$(curl "https://xxxxxx?npid=${npid}") function parseField() { intercept=`echo ${latestVersionRps#*\"$1\"\:}` fieldValue=`echo ${intercept%%\,*}` } parseField "version" if [ ! -f /tmp/bbl_version ] || [ ! -s /tmp/bbl_version ] || [ `cat /tmp/bbl_version` != $fieldValue ] then # 保存最新版本号 echo $fieldValue > /tmp/bbl_version; bblVersion=$(cat /tmp/bbl_version | awk -F '"' '{print $2}') # 保存所有词条 curl "https://xxxxxx/${npid}/${bblVersion}/CN.json" --compressed | grep -Eo \"CN\"\:\".*?[^\"]\"\, | awk -F '"' '{print $4}' > "/tmp/tmp_all_words_on_bbl_file" fi; if [ -f "/tmp/tmp_all_words_on_bbl_file" ] then cat /dev/null > "/tmp/tmp_modified_files"; cat /dev/null > "/tmp/tmp_words_file"; cat /dev/null > "/tmp/tmp_uniq_words_file"; if git rev-parse --verify $branch || git rev-parse --verify origin/$branch; then git fetch; git checkout $branch || ! echo '异常:切换分支报错,请先暂存当前分支更改~' || exit git pull; git diff --name-only master...$branch > "/tmp/tmp_modified_files"; for file in $(awk '{print $1}' "/tmp/tmp_modified_files") do [ -f "$file" ] && grep "\bt('[^']\+'" -ro "$file"| awk -F "'" '{print $2}' | sort -u >> "/tmp/tmp_words_file"; done cat "/tmp/tmp_words_file" | sort -u > "/tmp/tmp_uniq_words_file" ; else echo "异常:没找到该分支~"; exit; fi; # 如果词条文件内容不为空 if [ -s "/tmp/tmp_uniq_words_file" ] then uniqWordsList=($(cat "/tmp/tmp_uniq_words_file")) allWordsOnBblList=($(cat "/tmp/tmp_all_words_on_bbl_file")) cat /dev/null > "/tmp/tmp_need_upload_words_list"; declare -a needUploadWordsList index=0 isExist=0; for uniqWordsListItem in "${uniqWordsList[@]}" do for allWordsOnBblListItem in "${allWordsOnBblList[@]}" do if [ "${uniqWordsListItem}" == "${allWordsOnBblListItem}" ]; then isExist=1 break fi done if [[ $isExist -eq 0 ]]; then needUploadWordsList[index]=$uniqWordsListItem echo $uniqWordsListItem >> /tmp/tmp_need_upload_words_list index=$((index+1)) else isExist=0 fi done if [ ${#needUploadWordsList[@]} -gt 0 ]; then result=$(cat "/tmp/tmp_need_upload_words_list") echo -e "\033[1;31m\n\n最终需要上传到bbl的词条汇总:\033[0m\n\033[33m$result\033[0m"; else echo -e "\033[1;32m\n\nbbl平台上已存在该分支改动涉及的所有词条\033[0m" fi; else echo "异常:该分支没有修改~"; exit; fi fi;
这篇关于写一个项目里词条对比的shell的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南