`
ioio
  • 浏览: 141981 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

文件操作

阅读更多

read一次可以为多个变量赋值——但一次只能读一行,比如:

    #!/bin/bash
   #指定分隔符为  “:”
    IFS=:    
    read aa bb cc < /etc/passwd
    echo $aa $bb $cc
    (注:默认shell是无法将/etc/passwd中那些以冒号分割的字符串分割的,通过设置IFS可以实现这一点,详情见本文底部)
    我们将看到的结果是前两个变量被赋予了正确的值,最后一个变量被赋予了文件第一行剩下的所有值。(因为read一次只能读一行)
    而现实中如果一个文件保存了这样一个电话本:
    路人甲  13900000000
    主角A   23320000
    神秘人  12x0x0x0000
    旁白    85600000
    ……
    如果我们要写一个脚本来实现该电话本的查询,通常会这样写:
    #!/bin/bash
    while read name num
    do
    if [ $name = $1 ]
       then echo $num
    fi
    done
    当我们把想查询的人名作为参数来启动脚本,就可以看到他的号码,然后给他打骚扰电话……
    (关于while等流程控制语句,我会在稍后整理)
 
 
   抽取行
    head -x 文件               //抽取前x行
    tail -x 文件               //抽取末尾x行
    sed  -n xp 文件          //抽取文件中的第x行   注:这里的-n就是-n,不代表别的。
 
 
   抽取列
    cut -fx -dy 文件           //以y作为分隔符,抽取第x列
    awk -Fy '{print $x}' 文件  //以y作为分隔符,抽取第x列
                               注:awk可以抽取多列,在指令中使用逗号分割,例:
                               awk -F: '{print $3,$5}' /etc/passwd
                                        将会抽取文件中的第3列和第5列
 
 
   排序
    sort -ty +xn 文件          //以y作为分隔符,以第1+x列为基准排序
    注:如果使用了该指令,则不能在同一语句内使用其它参数,如有需要,只能在管道中再sort一次,如: sort +4n /etc/fstab | sort -r
         其它参数:  n  对数字排序
                   d   对字母排序
                   M   对月份排序(诸如JAN,FEB....DEC之类)
                   r   逆向
 
 
   $IFS
    很多时候我们并不需要指定分隔符,因为$IFS默认包含了空格,\t和换行符。
    只有遇到其它分隔符是我们才需要特别指定,比如$PATH和/etc/passwd中就是以冒号分割,遇到类似这种情况,我们才需要对$IFS进行指定。
分享到:
评论

相关推荐

    C++文件操作工具类

    在实际编程过程中,处理文件操作是一项基础且重要的任务。"C++文件操作工具类"是一个专门为C++开发者设计的实用工具,它简化了对文件进行读写、创建、删除等操作的过程。 首先,我们要理解C++中的文件操作基本概念...

    MFC vc++6.0文件操作

    在Microsoft Foundation Classes (MFC) 中,VC++ 6.0 提供了强大的文件操作功能,使得开发者可以方便地进行各种文件操作,如打开、关闭、读取、写入、创建以及删除文件。MFC 是 Microsoft 为 Windows 平台上的 C++ ...

    Unity中Android的文件操作

    原数据存放在StreamingAsset中,首次启动复制到persistentDataPath,以后进行更新和读取都在persistentDataPath中使用File进行文件操作。需要恢复书序的时候从StreamingAsset中获取即可。

    JSP中的文件操作

    JSP中的文件操作

    matlab文件操作命令详解-matlab文件操作.doc

    matlab文件操作命令详解-matlab文件操作.doc matlab文件操作命令详解

    noip文件操作精讲

    Noip 文件操作精讲 Noip 文件操作是编程语言中最基本也是最重要的一部分,涉及到文件的输入输出操作。无论是 C 语言还是 C++ 语言,文件操作都是必不可少的。下面将对 Noip 文件操作进行详细的讲解。 文件操作的...

    C#编程 文件操作 FileCopyPlan(源码)(源码)

    C#编程 文件操作 FileCopyPlan(源码)(源码)C#编程 文件操作 FileCopyPlan(源码)(源码)C#编程 文件操作 FileCopyPlan(源码)(源码)C#编程 文件操作 FileCopyPlan(源码)(源码)C#编程 文件操作 FileCopyPlan(源码)(源码)...

    C#编程 文件操作 WordReplace(源码)(源码)

    C#编程 文件操作 WordReplace(源码)(源码)C#编程 文件操作 WordReplace(源码)(源码)C#编程 文件操作 WordReplace(源码)(源码)C#编程 文件操作 WordReplace(源码)(源码)C#编程 文件操作 WordReplace(源码)(源码)C#...

    php中面向对象,文件操作类.zip

    php中的面向对象,文件操作类,可以查看文件,删除文件,上传文件。包含构造函数,打开工作文件目录,向当前文件夹添加文件,同时检查是否有重名的文件,将临时文件复制到当前目录中。

    C++使用hookapi监控文件操作程序

    本项目“C++使用hookapi监控文件操作程序”正是基于这一技术,用于实现对文件系统事件的实时监控。下面将详细介绍相关的知识点。 首先,`hookapi`是指Windows API中的钩子(Hook)机制。钩子是一种让程序能够监视...

    操作系统课程设计-文件管理系统(源码+报告).zip

    本设计的目的是通过设计和调试一个简单的文件系统,通过模拟文件操作命令的执行,来模拟文件管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。具体要求如下: ⑴设计一个...

    21个VC文件操作实例源码

    如何使用Shell操作文件 如何逐行读取文本文件 如何查找文件 如何创建临时文件 如何创建目录 如何复制文件 如何获得INI文件的全部段名 如何获得Windows目录和System目录 如何获得或设置文件的属性 如何获得...

    C#编程 文件操作 CreatePDFDocument(源码)(源码)

    C#编程 文件操作 CreatePDFDocument(源码)(源码)C#编程 文件操作 CreatePDFDocument(源码)(源码)C#编程 文件操作 CreatePDFDocument(源码)(源码)C#编程 文件操作 CreatePDFDocument(源码)(源码)C#编程 文件操作 ...

    C#编程 文件操作 ClearRecycle(源码)(源码)

    C#编程 文件操作 ClearRecycle(源码)(源码)C#编程 文件操作 ClearRecycle(源码)(源码)C#编程 文件操作 ClearRecycle(源码)(源码)C#编程 文件操作 ClearRecycle(源码)(源码)C#编程 文件操作 ClearRecycle(源码)(源码)...

    C#编程 文件操作 MultiFormatTxt(源码)(源码)

    C#编程 文件操作 MultiFormatTxt(源码)(源码)C#编程 文件操作 MultiFormatTxt(源码)(源码)C#编程 文件操作 MultiFormatTxt(源码)(源码)C#编程 文件操作 MultiFormatTxt(源码)(源码)C#编程 文件操作 MultiFormatTxt...

    C#编程 文件操作 ReadFileByLine(源码)(源码)

    C#编程 文件操作 ReadFileByLine(源码)(源码)C#编程 文件操作 ReadFileByLine(源码)(源码)C#编程 文件操作 ReadFileByLine(源码)(源码)C#编程 文件操作 ReadFileByLine(源码)(源码)C#编程 文件操作 ReadFileByLine...

    C#编程 文件操作 ManageFileByType(源码)(源码)

    C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ...

    C#编程 文件操作 CamouflageFolder(源码)(源码)

    C#编程 文件操作 CamouflageFolder(源码)(源码)C#编程 文件操作 CamouflageFolder(源码)(源码)C#编程 文件操作 CamouflageFolder(源码)(源码)C#编程 文件操作 CamouflageFolder(源码)(源码)C#编程 文件操作 ...

    C#编程 文件操作 FileBatchChangeName(源码)(源码)

    C#编程 文件操作 FileBatchChangeName(源码)(源码)C#编程 文件操作 FileBatchChangeName(源码)(源码)C#编程 文件操作 FileBatchChangeName(源码)(源码)C#编程 文件操作 FileBatchChangeName(源码)(源码)C#编程 文件...

    C#编程 文件操作 CreateFile(源码)(源码)

    C#编程 文件操作 CreateFile(源码)(源码)C#编程 文件操作 CreateFile(源码)(源码)C#编程 文件操作 CreateFile(源码)(源码)C#编程 文件操作 CreateFile(源码)(源码)C#编程 文件操作 CreateFile(源码)(源码)C#编程 ...

Global site tag (gtag.js) - Google Analytics