⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dict-lookup.sh

📁 Shall高级编程
💻 SH
字号:
#!/bin/bash# dict-lookup.sh#  This script looks up definitions in the 1913 Webster's Dictionary.#  This Public Domain dictionary is available for download#+ from various sites, including#+ Project Gutenberg (http://www.gutenberg.org/etext/247).##  Convert it from DOS to UNIX format (only LF at end of line)#+ before using it with this script.#  Store the file in plain, uncompressed ASCII.#  Set DEFAULT_DICTFILE variable below to path/filename.E_BADARGS=65MAXCONTEXTLINES=50                        # Maximum number of lines to show.DEFAULT_DICTFILE="/usr/share/dict/webster1913-dict.txt"                                          # Default dictionary file pathname.                                          # Change this as necessary.#  Note:#  ----#  This particular edition of the 1913 Webster's#+ begins each entry with an uppercase letter#+ (lowercase for the remaining characters).#  Only the *very first line* of an entry begins this way,#+ and that's why the search algorithm below works.if [[ -z $(echo "$1" | sed -n '/^[A-Z]/p') ]]#  Must at least specify word to look up, and#+ it must start with an uppercase letter.then  echo "Usage: `basename $0` Word-to-define [dictionary-file]"  echo  echo "Note: Word to look up must start with capital letter,"  echo "with the rest of the word in lowercase."  echo "--------------------------------------------"  echo "Examples: Abandon, Dictionary, Marking, etc."  exit $E_BADARGSfiif [ -z "$2" ]                            #  May specify different dictionary                                          #+ as an argument to this script.then  dictfile=$DEFAULT_DICTFILEelse  dictfile="$2"fi# ---------------------------------------------------------Definition=$(fgrep -A $MAXCONTEXTLINES "$1 \\" "$dictfile")#                  Definitions in form "Word \..."##  And, yes, "fgrep" is fast enough#+ to search even a very large text file.# Now, snip out just the definition block.echo "$Definition" |sed -n '1,/^[A-Z]/p' |#  Print from first line of output#+ to the first line of the next entry.sed '$d' | sed '$d'#  Delete last two lines of output#+ (blank line and first line of next entry).# ---------------------------------------------------------exit 0# Exercises:# ---------# 1)  Modify the script to accept any type of alphabetic input#   + (uppercase, lowercase, mixed case), and convert it#   + to an acceptable format for processing.## 2)  Convert the script to a GUI application,#   + using something like 'gdialog' or 'zenity' . . .#     The script will then no longer take its argument(s)#   + from the command line.## 3)  Modify the script to parse one of the other available#   + Public Domain Dictionaries, such as the U.S. Census Bureau Gazetteer.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -