sed,awk工具学习
来源:互联网 发布:禁止安装软件的软件 编辑:程序博客网 时间:2024/06/03 20:19
sed工具
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法
常用选项:
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e∶直接在指令列模式上进行 sed 的动作编辑;
-f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r∶sed 的动作支援的是延伸型正规表示法的语法。(默认是标准正则)
-i∶直接修改读取的档案内容,而不是由萤幕输出。常用命令:
a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
测试文件如下:
1111
2222
3333
4444
5555
6666
7777
8888
9999
删除
添加
替换
sed ‘s/要被替换的字符串/新字符串/g’
sed 's/test/*&*/g' file 符号&代表查找串。 test将被替换为*test*
查看
sed '/pattern/action' file查看以1开头的行:sed -n '/^1/p' file
以上的命令都不对file文件产生影响,而一旦我们加上了-i选项就可以直接改变原文件了
将文件的每一行最后“.”替换为“!”
在文件的最后一行加上###
awk工具
awk是以行为单位处理文件,但是它比sed更强的地方在于它还能以列的方式处理文件,对于awk来说,一行内容可以称作为一个记录,默认的行分隔符为\n,一列内容可称作为一个域,默认的列分隔符是空格和tab,但是行列分隔符都可以自己设定。
awk实际是一门脚本语言,语法有点类似C语言
一般以以下方式使用:
直接在命令行:awk options ‘script’ file1 file2...脚本方式:awk options -f scriptfile file1 file2..../scriptfile file1 file2
比如打印file第二列的内容
awk ‘{print $2}’ file脚本方式如下图:
一般编辑awk格式如下:
/pattern/{actions}
condition{actions}
awk命令的conditions部分还可以是BEGIN和END,这两分别代表处理文件之前以及处理文件之后执行一次操作,具体如下:
上述是求1-9相加的和,BEGIN在文件处理之前定义i=0,中间就像C语言一样用循环相加,最后END在文件处理完执行打印操作。
设置域分隔符为c,输出时候设置输出分隔符为###
统计一个文件里面的错误:
- sed,awk工具学习
- Awk Sed 学习
- sed&awk学习总结
- sed && awk学习总结
- SED与AWK学习笔记
- grep、awk、sed学习笔记
- sed and awk学习笔记
- SED与AWK学习笔记
- SED与AWK学习笔记
- SED与AWK学习笔记
- SED与AWK学习笔记
- awk sed学习笔记 记录
- grep,sed,awk学习笔记
- 过滤工具grep | egrep|awk|sed
- shell脚本---grep、awk、sed工具
- Linux工具之grep&&sed&&awk
- 脚本学习之路之----我要熟悉awk, sed, rpm 工具
- sed工具学习
- 【MyBatis学习12】MyBatis中的一级缓存
- Webpack中的loader
- Jeddict研究过程中的总结
- R语言安装mxnet问题
- 求数组中最大两个数值
- sed,awk工具学习
- 【MyBatis学习13】MyBatis中的二级缓存
- 服务器源码安装TensorFlow
- android studio Error:(1, 1) 错误: 非法字符: '\ufeff' 解决方案
- C语言学习笔记——指针的作用
- springboot项目搭建(一)
- JS对象
- ubuntu16.04 安装 lib32readline-gplv2-dev 出错,解决办法
- 51nod1080 两个数的平方和