马上码特色 先来点诗句春日 朱熹(1130年9月15日~1200年4月23日),行五十二,小名沋郎,小字季延,字元晦,一字仲晦,号晦庵,晚称晦翁,又称紫阳先生、考亭先生、沧州病叟、云谷老人、沧洲病叟、逆翁。谥文,又称朱文公。 胜日寻芳泗水滨,无边光景一时新。 等闲识得东风面,万紫千红总是春。 awk(关键字:分析&处理)作为一种可编程的编辑器,面向字符流,并可解释编辑命令脚本,废弃了sed的行编辑命令集,仿效C语言, 一行一行的分析处理,倾向于一行当中分成数个"字段"(区域)来处理。 基本工作方式: 1、awk [选项参数] '条件类型1{动作1}' 文件名,默认的分隔符是空格键或制表符tab 2、执行awk脚本方式,awk -f awk脚本文件名 被处理文件名, 可以不指定编辑器为awk,先vi编辑shell脚本文件,文件名后缀为.sh,不过在开头需要指定#! /bin/awk 例: awk '/test/ {print NR}' q 将带有test的行的行号打印出来, 注意//之间可以使用正则表达式 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 #删除第一行 原文件 sed之后的文件 我在学linux——(必学命令)之文件操作相关命令基础实操篇(简单到不行,加上实例,基本一次能记住) 更多内容请关注头条号 / 马上码 |
|