分享

我在学linux——(必学命令)文件操作相关之awk、sed基础及操作图(非常重要,就是稍难一点)

 云水禅心688 2017-06-19

马上码特色 先来点诗句

春日

朱熹(1130年9月15日~1200年4月23日),行五十二,小名沋郎,小字季延,字元晦,一字仲晦,号晦庵,晚称晦翁,又称紫阳先生、考亭先生、沧州病叟、云谷老人、沧洲病叟、逆翁。谥文,又称朱文公。

胜日寻芳泗水滨,无边光景一时新。

等闲识得东风面,万紫千红总是春。


awk(关键字:分析&处理)

作为一种可编程的编辑器,面向字符流,并可解释编辑命令脚本,废弃了sed的行编辑命令集,仿效C语言, 一行一行的分析处理,倾向于一行当中分成数个"字段"(区域)来处理。

基本工作方式:

1、awk [选项参数] '条件类型1{动作1}' 文件名,默认的分隔符是空格键或制表符tab

2、执行awk脚本方式,awk -f awk脚本文件名 被处理文件名,

我在学linux——(必学命令)文件操作相关之awk、sed基础及操作图(非常重要,就是稍难一点)

可以不指定编辑器为awk,先vi编辑shell脚本文件,文件名后缀为.sh,不过在开头需要指定#! /bin/awk

例:

awk '/test/ {print NR}' q 将带有test的行的行号打印出来, 注意//之间可以使用正则表达式

我在学linux——(必学命令)文件操作相关之awk、sed基础及操作图(非常重要,就是稍难一点)

sed(关键字: 编辑)

作为一个为特别目的面建立的编辑器,不可交互使用,面向字符流,专门用于执行脚本,以行为单位的文本编辑工具 sed可以直接修改档案, 不过一般不推荐这么做, 可以分析 standard input

基本工作方式: sed [-nef] '[动作]' [文件名]

-n :安静模式, 一般sed用法中, 来自stdin的数据一般会被列出到屏幕上, 如果使用-n参数后, 只有经过sed处理的那一行被列出来。

-e :直接在命令列模式上进行 sed 的动作编辑;

-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;

-i :直接修改读取的文件内容,而不是输出到终端。

动作说明: [n1[,n2]]functionn1, n2 :不见得会存在,一般代表『选择进行动作的行数』,

例:如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』

动作:

a:新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c:取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d:删除,因为是删除,所以 d 后面通常不接任何字符;

i:插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p:列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行;

s:取代,类似vi中的取代,通常这个 s 的动作可以搭配正规表示法!

例:

sed '/^$/d' filename #删除空行

sed 's/ //g' filename

sed 's/[[:space:]]//g' filename

sed '1d' filename #删除第一行

原文件

我在学linux——(必学命令)文件操作相关之awk、sed基础及操作图(非常重要,就是稍难一点)

sed之后的文件

我在学linux——(必学命令)文件操作相关之awk、sed基础及操作图(非常重要,就是稍难一点)

我在学linux——(必学命令)文件操作相关之awk、sed基础及操作图(非常重要,就是稍难一点)

我在学linux——(必学命令)之文件操作相关命令基础实操篇(简单到不行,加上实例,基本一次能记住) 更多内容请关注头条号 / 马上码

我在学linux——shell脚本实例(监控Oracle数据库)之积土成山,风雨兴焉?

因为有你,我飞起来了且舒畅无比(耕坛等于收获、坚持等于未来,随心录-第二篇)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多