Linux命令行翻譯工具
阿新 • • 發佈:2018-10-17
$0 .sh 第一次 tex scrip linu then image mod 一、背景
經常在linux命令行下有些單詞不認識,復制出來通過翻譯軟件很不方便,如果有個命令行翻譯就比較舒服了。通過下面shell腳本可以在/usr/bin/yd
創建yd命令來進行快速命令行翻譯。
二、代碼
git地址
#!/bin/bash # # CMD=/usr/bin/yd cat >${CMD} <<EOF #!/bin/bash ARGS=1 E_BADARGS=1 TEM_FILE="/tmp/dict.tmp" example_enable=false if [ \$# -lt "\$ARGS" ] then echo "Usage:\$(basename \$0) word" exit \$E_BADARGS fi #處理參數 while getopts "a" arg do case \$arg in a) example_enable=true shift ;; ?) example_enable=false echo "unkown argument" exit 1 ;; esac done keyword="\$*" keyword=\${keyword// /%20} # 抓取頁面,刪除html代碼,空行等,只留下想要的內容 curl -s ‘http://dict.youdao.com/search?q=‘\$keyword‘‘ | awk ‘BEGIN{j=0;i=0;} {if(/phrsListTab/){i++;} if(i==1){print \$0; if(/<\/ul>/){i=0;}} if(/collinsToggle/){ j++;} if (j==1) {print \$0; if(/<\/ul>/){j=0;}}}‘ | sed ‘s/<[^>]*>//g‘ | sed ‘s/?//g‘| sed ‘s/→//g‘ | sed ‘s/^\s*//g‘ | sed ‘/^$/d‘> \$TEM_FILE # 處理輸出 is_head=true # 當前行是否屬於“頭部” head="" # 頭部內容 body="" # 主體內容 ln_item=0 # 每一條解釋的行號 ln_eg=0 # 例句行號 while read line do let ln_item++ let ln_eg++ num_flag=\$(echo "\$line" | awk ‘/[0-9]+\.\$/‘) if [ "\$num_flag" != "" ]; then ## 遇見‘數字+點‘開頭的行 is_head=false # 第一次遇見數字行 將頭部標示設置為false ln_item=0 fi eg_flag=\$(echo "\$line" | awk ‘/例:\$/‘) # 遇見‘例:‘開頭的行 if [ "\$eg_flag" != "" ]; then ln_eg=0 fi if \$is_head ; then head="\$head \$line" else if [ \$ln_item == 0 ] ; then line="\033[32;1m\n\n\$line\033[0m" # 釋義編號 elif [ \$ln_item == 1 ] ; then line="\033[32;1m[\$line]\033[0m" # 詞性 elif [ \$ln_item == 2 ] ; then line="\033[1m\$line\033[0m" # 釋義 elif [ \$ln_eg == 0 ] ; then line="\033[32;1m\n \$line\033[0m" # 例: elif [ \$ln_eg == 1 ]; then line="\033[33m\$line\033[0m" # 例句 elif [ \$ln_eg == 2 ]; then line="\033[33m\$line\033[0m" # 例句釋義 fi body="\$body \$line" fi done < \$TEM_FILE if \$example_enable then echo -e "\033[31;1m\$head\033[0m \$body" else echo -e "\033[31;1m\$head\033[0m" fi exit 0 EOF chmod +x ${CMD}
三、測試
- 安裝
直接下載shell腳本,bash運行腳本即可bash linux_fanyi.sh
-
翻譯單詞
- 批量翻譯單詞
可以將單詞放在一個文件中,去遍歷翻譯,例如這裏翻譯了下linux系統的用戶名
Linux命令行翻譯工具