• sed和awk学习第一天


    sed 基本使用

    1.指定简单指令 sed [-e] 'instruction' file  只有在命令行上给出多个指令时才需要使用-e选项。sed   ‘s/MA/Mass/' list 

    使用单引号可以阻止shell解释编辑指令中的特殊字符或空格。sed 's/MA/, Mass/' list

    有三种方式可以指定命令行上的多重指令:

    a. 用分号分隔指令。

    sed 's/MA/, MAss/; s/ PA/, Penn/' list

    b.在每个指令前放-e 

    sed -e   ’s/MA/, Mass/‘  -e 's/ PA/, Penn/' list

    c.使用Bourne shell 的分行指令功能。在输入单引号后按return键,就会出现多行输入的提示符(>)

    sed  '

    >s / MA/, Mass/

    > s / PA/, Penn/'   list

    2.失误的命令

    sed -e 's/MA/Mass' list 提示错误  标记搜索和替换命令末尾的斜杆丢失了。

    3.脚本文件

    sed -f scripfile file 

    $ cat sedscr 

    s/ ma/, mass/

    s/ PA/, Penn/

    sed -f sedscr list 读取sedscr 中所有替换命令,并讲这些命令应用于输入文件list中的每一行;显示屏幕上是临时的,输入文件并没有发生改变。

    4.保存输出 

    sed -f sedscr list > newlist

    5.阻止输入行的自动显示

    sed 的默认操作是输出每个输入行。-选项可以阻止自动输出。当指定该选项时,

    AWK基本使用

     1. awk 'instruction' file 每次从一个或多个文件中读入一行或从标准输入一行读入一行。指令必须包含在单引号中,从而与shell区别开。

    2.awk -f script files -f选项的工作方式与在sed中相同

    实例包含单个指令,用于打印输入文件中每行的第一个字段

    awk ‘{print $1}’ list

    john

    alice 

    3.“$1”表示每个输入行上的第一个字段的值,没有指定模式,所有打印语句应用与所有行。

    awk  ‘/MA/’  list

    john MA,341 King Road, Plymouth MA

    Eric Adams,20 Post Road, Sudbury MA

    eric MA

    4.打印三列,awk更像一种查询语音,从文件中提取有用的信息。

    awk ‘/MA、 { print $1 }’ list

    John 

    Eric 

    默认情况下,awk使用空格或制表作为字段分隔符讲输入分隔成字段。

    5.使用-F选项讲字段分隔符改变为逗号。使我们能够检索3个字段中的任一个:全称 街道地址 或城市和州

    awk -F, ' /MA/ { print $1 }' list

    John Daggett

    Eric Adams

    Sal Carpenter 

    不要改变字段分隔符的-F选项与指定脚本文件名的-f选项弄混。

    下一个示例将每个字段单独打印在这一行上。多重命令分号隔开。

    awk -F, '{ print $1; print $2; print $3 }' l;ist

    john Daggett

    341 king Road

    Plymouth MA

    Alice Ford 

    22 East Broadway 

    出错信息

    没有使用大括号({]) 讲过程括起来

    没有用单引号('') 讲指令括起来

    没有用斜杠(//)中将正则表达式括起来

    6.选项总结

    awk -f 跟随脚本的文件名

    awk  -F 改变字段分隔符

    -v 跟随var=value

    同时使用sed和awk

  • 相关阅读:
    SDK Manager.exe和AVD Manager.exe缺失,Android SDK Tools在检查java环境时卡住了,未响应卡死!
    GetLastError结果列表
    VS2008 远程调试器未成功安装,没法使用?
    远程桌面连接无法相互拷贝文件了?
    VS2008编译错误:error C2065: 'PMIB_TCPSTATS' : undeclared identifier c:program files (x86)microsoft sdkswindowsv7.0aincludeiphlpapi.h 411
    C++ 保存Excel文件(带密码保护)
    UTF8与std:string互转
    将windbg设置为默认调试器命令
    VC++ 链接错误LINK : fatal error LNK1104: cannot open file "*.lib"
    IAP升级程序中Bootloader和APP程序中断复用的解决办法
  • 原文地址:https://www.cnblogs.com/legenidongma/p/14659042.html
Copyright © 2020-2023  润新知