linux命令 三大利器,awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一...
awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。
以下所有实验输出,均以测试文件test.log内容为基准:
20170102admin,password Open20170801nmask,nmask close20180902 nm4k,test filter
awk
AWK是一种处理文本文件的语言,是一个强大的文本分析工具; awk是以列为划分计数的,$0表示所有列,$1表示第一列,$2表示第二列。
awk参数
-F 指定输入文件折分隔符,如-F:
-v 赋值一个用户定义变量,如-va=1
-f 从脚本文件中读取awk命令
注:只列举最常用的参数
分隔符
每行按空格分割列,并输出第1、3列
$ awk '{print $1,$3}'test.log#或者
$ cat test.log | awk '{print $1,$3}'
自定义分隔符
使用”,”进行分割,参数用-F
awk -F, '{print $1,$2}' test.log
使用多个分隔符,先使用空格分割,然后对分割结果再使用”,”分割
$ awk -F '[ ,]' '{print $1,$2,$3}' test.log #注意逗号前面有一个空格
设置变量
设置awk自定义变量,用参数-v
例子:设置变量a为1
cat test.log | awk -v a=1 '{print $1,$1+a}'
注意:-v a之间要空格。
字符串拼接:(用””而不是+)
cat test.log | awk -v a=\"'{print a""$0""a}'
逻辑判断
输出第一列为20170801的记录
cat test.log | awk '$1==20170801 {print}'
输出第二列不是nmask,nmask的记录
cat test.log | awk '$2!="nmask,nmask" {print}'
内建变量
NR参数:输出行号
cat test.log | awk '{print NR,$1,$2,$3}'
正则表达式
输出第二列中包含nm开头的所有记录
cat test.log | awk '$2 ~ /nm.*/ {print}'
输出包含2017开头的记录
cat test.log | awk '/2017.*/ {print}'
注意:这里没有~,因为没有指定是哪一列
忽略大小写{INGORECASE=1}
cat test.log | awk '{INGORECASE=1} /nmask/ {print}'
匹配取反 !~
cat test.log | awk '$2 !~ /nmask/ {print}'
内置函数
substr字符串截取
截取第一列的第一到第四个字符
cat test.log | awk '{print substr($1,1,4)}'
split切分字符串
以逗号分隔第2列的数据,并输出分别输出第2列的内容
cat test.log | awk '{split($2,a,",");print a[1],a[2]}'
gsub替换
将第2列中的nmask替换成nMask
cat test.log | awk '{gsub("nmask","nMask",$2);print}'
grep
Linux grep命令用于查找文件里符合条件的字符串。
Usage
递归查询
grep -r nmask /etc/ #查看/etc目录下内容包含nmask的文件
查询取反
grep -v test test.log
sed
Linux sed命令是利用script来处理文本文件。
参数
-e 以选项中指定的script来处理输入的文本文件。
-f 以选项中指定的script文件来处理输入的文本文件。
-h 显示帮助。
-n 仅显示script处理后的结果。
-V 显示版本信息。
动作
a :新增, a 的后面可以接字串,而这些字串会在下一行出现
i :插入, i 的后面可以接字串,而这些字串会在上一行出现
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
d :删除
s :取代,通常这个s的动作可以搭配正规表示法!如 s/old/new/g
插入操作
在test.log文件的第3行后插入一行,内容为nmask
sed -e 3a\nmask test.log
删除操作
删除test.log的第2行、第3行数据
cat test.log | sed '2,3d'
匹配删除,删除行中有nmask字符串的
nl test.log | sed '/nmask/d'
替换操作
sed 's/要被取代的字串/新的字串/g'
linux命令 三大利器,awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一...相关推荐
- linux awk判断字符串开头,Linux文件比较三剑客(awk/grep/sed)之awk
一.什么是awk awk是Linux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等.他读取输出,或者文 ...
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
一.正则表达式 1.1国际字符模式匹配或匹配模式的类名 [:alnum:] : 0-9,A-Z,a-z [:alpha:] : A-Z,a-z [:upper:] : A-Z [:lower:] : ...
- Linux三剑客命令详解(grep sed awk )
下面所说的是Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep. 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能 ...
- linux三剑客(awk,grep,sed)
简介 linux三剑客是指在linux操作系统中非常重要的三个命令,即awk,grep,sed这三个命令.它们都具有优秀的处理文件的功能. ①awk:多用于取列. ②grep:多用于查找或匹配文本. ...
- linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结
一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...
- Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm
先用一个脚本,模拟创建 14 个测试文件: #!/bin/bash for ((i=1;i<=10;i++)); do if [ $i -lt 3 ] thentouch /home/mysql ...
- linux 常用命令 ln/cat/echo/grep/sed/tar/wc/find/ssh/scp/strace/strings/dd/chrt/iostat/rotatelogs/dstat
ln.cat.echo 的常用example: ln -s [需要被链接的source] [需要新创建的快捷方式target]注意,source要写绝对路径!cat > filename < ...
- Linux正则表达式和文本处理工具(gred、awk、sed)
使用Linux 的 gred.awk.sed 可以方便得处理文本,然而若要灵活使用这三个工具,首先必须理解正则表达式.这里先对正则表达式进行学习,做点记录,之后再练习一下文本处理工具的使用. 正则表达 ...
- linux系统grep用法,Linux系统中怎么使用grep命令?
在维护Linux系统时,我们常常需要在文本中搜索需要的东西,如果人为手动的去找那显然效率低下,那么如何才能快速找到所需要的文本呢?下面小编就以CentOS6.4系统为例为大家演示如何进行文本查找. 一 ...
最新文章
- 2022-2028年中国企业核心路由交换机行业市场前瞻与投资分析报告
- 半分钟内能看透问题本质的人是如何思考的?
- python3 字典 dict 常见用法总结(判断key是否存在)
- 罗泾数据中心顺利投产 中国太保科技建设正式步入“两地三中心”时代
- pthread_join函数
- 如何安装tensorflowGPU环境搭建(不报AVX2的警告)
- Nest,很酷的东西
- 【车牌识别】基于matlab GUI模板匹配车牌识别门禁系统【含Matlab源码 1091期】
- jQuery基础知识--Form基础(续)
- ArcGis 拓扑检查——狭长角锐角代码C#
- java冒泡排序和插入排序
- YouTube双字幕显示
- 项目管理 - 常用英语词汇一
- 优秀的程序员是不用过圣诞节的
- 计算机一级荷塘月色操作题,《荷塘月色》课后习题及答案
- win7 matlab 7.0,win7环境下使用matlab7.0的方法
- gtest中死亡测试
- 使用Openxal框架开发加速器模型相关的java应用程序
- nunjucks.js模板渲染
- 经典Python视频教程
热门文章
- 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
- Angular 导致公司损失数十亿美元!
- “意念打字”终成真!准确率超 99%,还登上了《Nature》封面!
- 华为高管揭秘公司不上市的原因;微信回应「花钱就能查到聊天记录」;马斯克删除「超苹果只要几个月」评论 | 极客头条...
- Firefox 新版本发布,Cookie 可真不好吃
- 位居中国机器学习公有云市场份额第一,华为云 ModelArts 的进阶之路
- 来看看优酷是如何测试 App 响应式布局的!
- 进阶必看的 RocketMQ ,就这篇了!
- 分析数万条国庆旅游评论数据后,我发现了“坑爹”景点背后的秘密
- 谷歌:明年开始对应用内购买抽取 30% 分成;钉钉创始人无招将离任;Java O2OA V5.2.0 发布|极客头条