日历

2017年十二月
« 9月    
 123
45678910
11121314151617
18192021222324
25262728293031

最近评论

    AWK的使用

    awk的使用 第九部分 使用awk编写可交互的程序

         在执行编写的awk程序时,awk会自动从数据文件中读取数据并进行处理,直到文件结束。实际上,只要将awk读取数据的来源改成键盘输入,那么就可以设计与awk 交互的程序了。
        首先看一个交互的程序。这个系程序能够实现输入一个英文单词,程序打印出该词对应的汉语意思,并继续等待用户输入新的英文单词。首先编辑一个数据文档data.dat,内容如下:
    [root@myfreelinux pub]# cat data.dat
    man 男人
    girl 女孩
    boy 男孩
    rose 玫瑰
    apple 苹果
    banana 香蕉

    AWK的使用

    awk使用 第7部分 awk对多行数据的处理实例

        awk 每次从数据文件中只读取一行数据进行处理,这是因为awk中有一个内建变量RS(Record Separator) ,RS将文件中的数据分隔成以行为单位的记录record。RS默认值以”\n”(跳行符号)分隔数据文件中的信息,所以默认情况下awk 中一行数据就是一行Record。但有些文件中一行Record涵盖了多行数据,这种情况下不能再以”\n” 来分隔Records。最常使用的方法是相邻的Records之间改用一个空白行来分隔。在awk程序中,令RS= “”(空字符串)后,awk把会空白行当成来文件中Record的分隔符。显然awk对RS=””另有深意,简单来说是这样的,当RS=”” 时:多个相邻的空白行,awk仅作为一个Record Saparator(awk不会在多个相邻的空白行之中选取一行做为空的Record) ;awk会略过(skip)文件头和文件尾的空白行,所以不会因为有这样的空白行,造成awk多读了二行空的数据。下面举个例子看一下,首先建立一个数据文件myfreelinux.dat,内容如下:
    [root@myfreelinux pub]# cat myfreelinux.dat

     

    AWK的使用

    awk的使用 第二部分 awk的运行方式

        在linux/UNIX 的命令行上输入一下格式的指令: ( “$”表Shell命令行上 的提示符号)
        $awk   ‘awk程序’   数据文件名
        上面这条语句中,awk会先编译该程序, 然后执行该程序来处理所指定的数据文件。
        awk程序的主要结构: awk程序中主要语法是 Pattern { Actions},即模式{动作}, 所以常见的awk 程序的机构如下:
        Pattern1 { Actions1 }
        Pattern2 { Actions2 }
        ……
        Pattern3 { Actions3 }
        Pattern 是什么? awk 可接受许多不同型态的Pattern。 一般常使用 “关系表达式”(Relational expression) 来当成 Pattern。 例如: x > 34 是一个Pattern, 判断变x与34是否存在大于的关系。 x == y是一个Pattern, 判断变量x与变量y是否存在等于的关系。 上式中 x>34 ,x ==y 便是典型的Pattern。 […]

    AWK的使用

    awk的使用 第一部分

    awk概述
        为什么使用awk: awk 是一种程序语言。 它具有一般程序语言常见的功能。 因awk语言具有某些特点, 如:使用直译器(Interpreter)不需先行编译; 变量无类型之分(Typeless), 可使用文字当数组的下标 (Associative Array)。。。等特色。 因此,使用awk撰写程序比起使用其它语言更简洁便利且节省时间。awk还具有一些内建功能,使得awk擅于处理具数据行(Record), 字段(Field)型态的资料; 此外, awk 内建有管道(pipe) 的功能,可将处理中的数据传送给外部的Shell命令加以处理, 再将Shell命令处理后的数据传回awk程序, 这个特点也使得awk程序很容易使用系统资源。由于awk具有上述特色, 在问题处理的过程中,可轻易使用awk来撰写一些小工具;这些小工具并非用来解整个大问题,它们只扮演解个别问题过程的某些角色, 可藉由Shell所提供的管道(pipe)将数据按需要传送给不同的小工具进行处理,以解决整个大的问题。 这种解决方式, 使得这些小工具可因不同需求而被重复组合及重用(reuse); 也可藉此方式来先行测试大程序原型的可行性与正确性,将来若需要较高的执行速度时再用C语言来改写。这是awk最常被应用之处。 若能常常如此处理问题,  读者可以以更高的角度来思考抽象的问题,不会被拘泥于细节的部份。 

    linux/unix基础知识

    Unix 第3章 文件访问权限

    3.1 谁有权访问文件              
        Unix系统中的每一个文件都属于系统中的某一个用户。文件的所属用户可以控制谁可以来存取这个文件。文件的所属用户有权力允许或是拒绝其它的用户存取文件。              
        UNIX 系统为一个文件提供三层访问控制结构:              
        1、user 代表文件的所有者              
        2、group 代表对文件有存取权限的组              
        3、other 代表系统中的其他所有的用户              
         每一个文件都属于系统中的一些用户。文件的所属用户有完全控制权决定什么人有什么权限存取文件,所属用户能允许或拒绝系统中的其他用户访问文件。所属用户决定什 么组有权限存取他的文件,所属用户也能将文件给系统中的其他用户,但是一旦文件的所有权被转换,文件原始的所属用户将不能再够控制这个文件。               
         由于文件属于用户,并且与组相关联,所以可以使用id 命令来显示你的身份和你对系统中文件的访问权限。

    linux/unix基础知识

    第2章 管理目录和文件

     2.1 文件系统和目录结构

    2.1.1 什么是文件系统
         UNIX 系统提供文件系统来管理和组织文件和目录。文可以看做是数据的容器,而目录是文件和(或)其他目录的容器,一个目录下的目录通常称为子目录。

    2.1.2 文件系统结构

    linux/unix基础知识

    第1章 UNIX 基本使用和基本命令

     1.1 UNIX 概述
            UNIX 是一个强大的多用户、多任务操作系统,支持多种处理器架构。最早由Ken Thompson,Dennis Ritchie 和Douglas McIlroy 于1969 年在AT&T 的贝尔实验室开发。Ken 和Dennis最早是在贝尔实验室开发UNIX的,此后的10年,UNIX在学术机构和大型企业中得到了广泛的应用。当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将UNIX源码授权给 学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的UNIX“变种(Variations)”,这些变种反过来也促进了UNIX的发展,其中最著名的变种之一是由加州大学Berkeley开发的BSD产品。 后来AT&T意识到了UNIX 的商业价值,不再将UNIX源码授权给学术机构,并对之前的UNIX及其变种声明了版权权利。为了不和AT&T的版权冲突,BSD产品在版本3之后将代码进行 了重写,BSD产品在此之后不再包括有版权的UNIX代码。
             BSD在发展中也逐渐衍生出3个主要的分支:FreeBSD,OpenBSD和NetBSD。 此后的几十年中,UNIX仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。UNIX的版权曾经为AT&T所有,之后Novell拥有了UNIX,再之后Novell又将版权出售给 了SCO(这一事实双方尚存在争议)。有很多大公司在取得了UNIX的授权之后,开发了自己的UNIX产品,比如IBM的AIX,HP的HPUX,SUN的Solaris和SGI的IRIX。 UNIX因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用,与此形成对比的是,在桌面和个人计算领域,微软的Windows系列和苹果电脑的Mac OS系列产品占据了绝大部分市场。