sed && awk lookup 解答

[email protected]:/home/koyaku# vim lookup 

  2
  3 #0
  4 BEGIN { FS = " "; OFS = " "
  5         #prompt user
  6         printf("Enter a glossary term:")
  7 }
  8
  9 #1 read local file named glossary
  2
  3 #0
  4 BEGIN { FS = " "; OFS = " "
  5         #prompt user
  6         printf("Enter a glossary term:")
  7 }
  8
  9 #1 read local file named glossary
 10 FILENAME == "glossary" {
 11     #load each glossary entry into an array
 12     entry[$1]=$2
 13     next
 14 }
 15
 16 #2 scan for command to exit program
 17 $0 ~ /^(quit|[qQ]|exit|[xX])$/{ exit }
 18
 19 #3 process any non-empty line
 20 $0 != ""{
 21     printf "in this roud"
 22     print entry[1]
 23     if ( $0 in entry ){
 24         # it is there,print definition
 25         printf "in the entry"
 26         print entry[$0]
 27         }else
 28             print $0 "not found"
 29     }
 30
 31 #4 prompt user again for another term
 32 {
 33     printf("Enter another glossary term (q to quit):")
 34     }‘ glossary -

手动敲上面代码遇到几个问题和疑惑

1.按照书上给的是“\t” 实际敲的是“ ”,所有导致得不到正确的结果。第十行的意思是在当前目录中找到文件名为glossary的文件,并且由“ ”(空格分隔),将后面的赋值给前面比如entry[BASIC] =Beginners  entry[CICS]= Customers 等等

2.第二十到二十三行。就是你输入的值为$0。检查这个值是否在entry数组中,即BASIC\ COBOL\CICS等。如果在就打印entry对应的值,没有就输出notfound

3.glossary -  是什么意思?

时间: 2024-10-21 20:15:21

sed && awk lookup 解答的相关文章

linux sed&awk详解

sed sed为文本处理三剑客之一.本身就是一个管道命令,可以将文件进行增加,修改,删除,选取等操作. 格式:sed [-nrefi] [command] "文本字符串" 选项: -r: 支持扩展正则表达式: -n: 静默模式:(sed有个模式空间和保持空间,默认sed会将执行的结果保存到模式空间里面,而模式空间默认情况是输出在屏幕上,加了-n,则阻止将模式空间的内容输出到屏幕上) -f:/path/to/script_file:从指定的文件中读取脚本并运行 -e script1 -e

学习sed,awk最好的路径

编写shell脚本的时候,最常用的便是sed,awk等工具. 如果没有一个好的学习路径,学起来会发现"知其然,不知其所以然".很多别人写的脚本看不懂. 其实,这里可能主要有一个学习路径的欠缺.学习sed之前,应该先了解ed,这个远古时代的文本编辑器,只有对它有了相应了解,才能知道为何那么写.

十七. 正则以及grep ,sed,awk的简单应用

一.正则表达式:/ / grep,sed,awk 都能解释正则表达式 正则表达式:把一些特殊符号组合到一起描述字符和字符串的方法.^ 以什么开头 grep '^root' /etc/passwd$ 以什么结尾 如能登入系统的所有用 grep 'bash$'/etc/passwd. 任意一个字符 grep '^b.n' /etc/passwd 过滤取到bin的.* 所有字符* 代表前面的字符有0个或者无穷个 grep 'b*' /+ 必须用egrep 或 egrep -E 'ab+'表示前面的字符

值得一看的书之《sed&awk(第2版)》

想学习高级sed和awk可以去看看,收益匪浅. --2016年11月19日看完<sed&awk(第2版)> 下载链接:http://down.51cto.com/data/2264410(需要一个下载豆) 值得一看的书之<sed&awk(第2版)>

Linux的文本编辑diff & sed & awk & grep

grep(关键字: 截取) 文本搜集工具, 结合正则表达式非常强大    主要参数 []    -c : 只输出匹配的行    -I : 不区分大小写    -h : 查询多文件时不显示文件名    -l : 查询多文件时, 只输出包含匹配字符的文件名    -n : 显示匹配的行号及行    -v : 显示不包含匹配文本的所有行(我经常用除去grep本身)    基本工作方式: grep 要匹配的内容 文件名, 例如:    grep 'test' d* 显示所有以d开头的文件中包含test的

LINUX 下 find grep sed awk 的常见基本用法特点

LINUX 下 find grep sed awk 的常见基本用法特点 只为让自己具有更高的水准,这就开始了长达6个月的小白进阶路! 这几天学习linux基础命令有点犯蒙,尤其是对文件查找这块.所有我想把一些我觉得常用的实用的参数项总结下来,大神勿喷哈... 不到之处请大家指教,小女子在此谢过了. 一.find:命令用于查找文件系统中指定的文件,其命令格式为: 1.find pathname -options [ -print  -exec  -ok ... ] (1)find 命令的参数: p

sed awk 笔记(二)

都说sed awk 运维人员的必备工具.今天起开始整理相关笔记.首先认识一下这两个东西. 共性:使用相同的语法 [address]/pattern/action/flag 都是面向字符流的.从一个文件一次银行的读取输入.并输出到标准输出.即输入驱动的 都是使用正则表达式进行模式匹配的 都允许用户在脚本中指定指令 所以个人认为有几个方面需要突破:语法.正则.编写脚本的思路 [[email protected] test]#今天写的脚本显示洲及所在州的人名 #! /bin/sh awk -F ",&

使用GoAccess分析Nginx日志以及sed/awk手动分析实践

前言 使用Nginx的网站可能会遇到访问流量异常.被友情检测.程序出现Bug等各种突然情况,这时大家的反应想必都是第一时间分析日志,然后发现日志有几十GB之多,又需要按照时间.错误类型或者关键字段检索信息时会不会有种醍醐灌顶.菊花一紧的错觉.文中介绍的方法不管是GoAccess还是sed/awk虽然可以解决一时的问题但未必能够治本,也许ELK(Logstash+ElasticSearch+Kibana)对我们大多数人来说是更合理的集中化日志管理解决方案. 日志固然重要,但努力建设适合业务发展的集

Sed&amp;awk笔记之sed篇(转)

Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the program and is directed to standard output. Sed本质上是一个编辑器,