awk命令

Linux AWK 和 SED

青春壹個敷衍的年華 提交于 2019-11-28 21:22:14
sed编辑器 较倾向于行处理 命令格式: sed -[i|n|e] '行号,行号{command1;command2};/正则表达式/,/正则表达式/{comand3;};行号{comand4;command5};/正则表达式/{command6}' file -i 直接修改文件 -n 只输出有影响的行 -e 多命令 p 打印匹配行 d 删除匹配行 s/正则表达式/字符串/g; 替换行内所有匹配到的串 s/正则表达式/&字符串/g; 将字符串拼接在行内所有匹配到的字符串后 s/正则表达式/字符串/; 替换行内第一个匹配到的串 s/正则表达式/&字符串/; 将字符串拼接在行内第一个匹配到的字符串后 n 匹配行的下行 i 在匹配行前插入 a 在匹配行后添加 c 替换匹配行 w 将匹配行写入文件 r 将匹配行处读取文件 AWK linux 文本字段处理利器,相较于sed更倾向于在行内字段处理方面的能力。 通用命令格式: awk -[F|f|v] 'BEGIN{}/正则表达式/{comand1;comand2};/正则表达式/{comand3;comand4}END{}' [OFS|ORS]="" file 流程:if ; while;for;continue;break;同C语言 exit 跳到 END命令块。next 表示跳过当前行,继续处理下行 正则表达式: * 0到任意个字符 +

linux shell 脚本攻略 下

江枫思渺然 提交于 2019-11-28 21:22:02
sed 入门 sed可以替换给定文本中的字符串,当然也可以用正则表试试匹配 sed 's/pattern/replace_string/' file 或者 cat file | sed 's/pattern/replace_string' 使用-i选项,可以讲替换结果应用于原文件 sed -i 's/text/replace/' file 如果要替换所有的的内容,需要在末尾增加g sed -i 's/pattern/replace/g' file 也可以使用1g 2g 来从第n+1处开始替换 移除空白行 sed '/^$/d' file 其中 ^$ 为行首和行尾 空白行中 行首和行尾是一起的 双引号用来匹配变量 sed "s/$text/Hello" 如果有特殊字符可以使用 sed -i "s#$test#hello#g" awk 通用语法 awk ' BEGIN { print "start" } pattern { commands } END { print "end" } file awk脚本通常由3个部分组成,BENGIN语句块,END语句块,和能够使用模式匹配的通用语句块 awk " BEGIN { statements } {statements} END {end statements }" 例如 awk " BEGIN { i=0 } { i++ } END {

2 shell编程

♀尐吖头ヾ 提交于 2019-11-28 19:18:29
Linux下有文本处理三剑客 -- grep sed awk grep:文本 行过滤工具 sed: 文本 行编辑器(流编辑器) awk:报告生成器(做文本输出格式化) 一、正则表达式 1、基础正则表达式 * 匹配前一个字符0次或任意多次 (a*表示匹配前一个字符0次或任意多次,这样写没有任何意义,会匹配所有。aa*表示匹配至少包含一个a的行) . 匹配除了换行符外任意一个字符 ^ $ 行首和行尾 [ ] 中括号中任意一个字符 \{n\} 表示前面的字符恰好出现n次 \是转义符 \{n,\} 表示其前面的字符出现不小于 n 次 \{n,m\} 表示前一个字符至少出现n次,最多出现m次 2、扩展正则 不需要加转义符 + 前一个字符匹配1次或任意多次 ? 前一个字符匹配0次或1次 | 匹配两个或多个分支选择 () 匹配一个整体 二、字符截取和替换命令 1、cut cut 命令的默认分隔符是制表符,也就是“tab”键 -f 列号 -d 分隔符 -c 字符范围 2、awk 常见参数 -F 指定分隔符 -v 手动指定变量参数 1)printf格式化输出 printf ‘输出类型输出格式’ 输出内容 输出类型: %ns: 输出字符串。n 是数字指代输出几个字符 %ni: 输出整数。n 是数字指代输出几个数字 %m.nf: 输出浮点数。m 和 n 是数字,指代输出的整数位数和小数位数。如%8.2f

Linux命令工作中常用总结

左心房为你撑大大i 提交于 2019-11-28 14:49:41
1. 搜索   在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位:   在vi和vim界面中输入:"/"(反斜杠),之后会出现一个输入框让你输入,当你输入的关键字在文件中存在就会以高亮的形式显示出来,之后按 回车 就确定定位到当前高亮位置,如果不是你要找的,则可以按: "n", 意即寻找下一个输入关键字的内容。 2. vim恢复以及乱码问题 (1) 在vi和vim中如果不小心误删除了一些东西,想要恢复怎么办? 首先要退出编辑状态,即按 Esc键 ,之后再按 u 撤销之前的修改的内容。 (2) 在用vi或vim打开一个文件的时候,如果有些地方出现一些特殊符号或是乱码,可以通过以下命令尝试: vim -b mytest.php(其中-b一般是用来查看对应的二进制文件的) 3. 管道命令,即竖杠-->'|' 上面的意思是:将查询出来的内容交给管道后面的命令装饰之后再展示出来   例如:cat install.log | more (more的意思是将一屏放不下的内容以分页的形式显示)      ls -l /etc | more   如果想看上一页的内容,可以通过:Shift + PageUp 来查看   管道配合grep(过滤)可以达到很好用的组合例如:   cat -n hello.txt | grep "hello"

Linux基础之输入输出

天大地大妈咪最大 提交于 2019-11-28 11:23:40
第十五章 输入输出 一、重定向概述 1.1、什么是重定向? 将原本要输出到屏幕的数据信息,重新定向到指定的文件中。 比如:每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中。这样第二天通过查看结果文件,就知道昨天备份数据是成功还是失败。 1.2、为何要使用重定向? 1)当屏幕输出的信息很重要,而且希望保存重要的信息的时候。 2)后台执行中的程序,不希望它干扰屏幕的正常输出结果的时候。 3)系统的例行命令,比如定时任务的执行结果,希望它可以存下来的时候。 4)一些执行命令,我们已经知道它可能出现错误信息,想将它直接丢弃的时候。 5)执行一个命令,可能报错输出和正确输出并存,类似错误日志与正确日志需要分别输出到不同的文件的时候。 1.3、学习重定向的预备知识,标准输入与输出 当运行一个 shell 程序时通常会自动打开三个标准文件,分别是标准输入、标准输出、错误输出。 1.4、标准输入与输出 执行一个shell程序时通常会自动打开三个文件描述符 名称 文件描述符 作用 标准输入(stdin) 0 通常是键盘,也可以是其他文件或者命令的输出。 标准输出(stdout) 1 默认输出到屏幕。 错误输出(stderr) 2 默认输出到屏幕。 文件名称(filename) 3+ 进程将从标准输入中得到数据,将正常输出打印至屏幕终端,将错误的输出信息也打印至屏幕终端。进程是使用文件描述符

linux shell 正则表达式(BREs,EREs,PREs)差异比较

≯℡__Kan透↙ 提交于 2019-11-28 03:47:52
linux shell 正则表达式(BREs,EREs,PREs)差异比较 则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。这些是正则表达式的定义。 由于起源于unix系统,因此很多语法规则一样的。但是随着逐渐发展,后来扩展出以下几个类型。了解这些对于学习正则表达式。 一、正则表达式分类: 1、基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs) 2、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs) 3、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs) 说明:只有掌握了正则表达式,才能全面地掌握 Linux 下的常用文本工具(例如

面试题-5

╄→尐↘猪︶ㄣ 提交于 2019-11-27 16:00:27
1.linux下常见的压缩包类型有哪些 格式 压缩工具 .zip zip压缩工具 .gz gzip压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) .bz2 bzip2压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) .tar.gz 先使用tar命令归档打包,然后使用gzip压缩 .tar.bz2 先使用tar命令归档打包,然后使用bzip压缩 2.将/etc/hosts文件用tar格式打包。 [root@chengyinwu ~]# tar czf hosts.tar.gz /etc/hosts 3.使用tar打包/var/log/目录。 [root@chengyinwu ~]# tar czf log.tar.gz /var/log/ 4.使用zip打包/etc目录。 [root@chengyinwu ~]# zip -r etc.zip /etc/ 5.查看/var/log/目录的压缩包中有哪些内容。 [root@chengyinwu ~]# tar tf log.tar.gz 6.将/var/log/目录解压到/opt目录中。 [root@chengyinwu ~]# tar xf log.tar.gz -C /opt/ 7.查看/etc/目录的压缩包的压缩比率。 [root@chengyinwu ~]# du -h etc.zip 14M etc

Linux awk命令

拈花ヽ惹草 提交于 2019-11-27 08:27:53
awk printf 格式化输出 [root@localhost ~]# printf ‘输出类型输出格式’ 输出内容 输出类型: %ns 输出字符串。n 是数字指代输出几个字符 %ni 输出整数。n 是数字指代输出几个数字 % m.nf 输出浮点数。m 和 n 是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出 8 位数,其中 2 位是小数,6 位是整数。 输出格式 \a 输出警告声音 \b 输出退格键,也就是 Backspace 键 \f 清除屏幕 \n 换行 \r 回车,也就是 Enter 键 \t 水平输出退格键,也就是 Tab 键 \v 垂直输出退格键,也就是 Tab 键 创建一个student.txt方便演示(有强迫症的可以加空格) [root@localhost ~]# vi student.txt ID Name PHP Linux MySQL Average 1 Liming 82 95 86 87.66 2 Sc 74 96 87 85.66 3 Tg 99 83 93 91.66 不指定输出格式,没有\n和\t看着挺糙 [root@localhost ~]# printf '%s' $(cat student.txt) IDNamegenderPHPLinuxMySQLAverage1LimingM82958687.662ScM74968785

08、启动过程+at+crond+anacron

此生再无相见时 提交于 2019-11-26 19:38:18
-- [root@li ~]# 加电--BIOS (basic input output system)--以什么设备来启动--/dev/sda -- mbr -- grub.conf --vmlinux and initramfs -- init -- /etc/inittab -- /etc/fstab -- /etc/rc.sysinit -- ls /etc/rcx.d -- /etc/rc.local --登录 系统引导程序 grub (就是一个boot loader) Grand Unified Boot Loader [root@li ~]# rpm -qa |grep grub grub-0.97-13.5 [root@li ~]# rpm -qi grub-0.97-13.5 Summary : GRUB - the Grand Unified Boot Loader. Description : GRUB (Grand Unified Boot Loader) is an experimental boot loader capable of booting into most free operating systems - Linux, FreeBSD, NetBSD, GNU Mach, and others as well as most

Zabbix监控平台(三)生产环境案例

我的未来我决定 提交于 2019-11-26 06:41:30
一,Zabbix生产环境监测案例概述 1.1 项目规划 主机分组 交换机 Nginx Tomcat MySQL Apache PHP-fpm redis(也有状态页,自己研究) memcache(也有状态页,自己研究) 监控对象识别: 使用SNMP监控交换(监控交换机或路由器) 使用IPMI监控服务器硬件 使用Agent监控服务器(监控操作系统和软件服务) 使用JMX监控JAVA(监控tomcat等java服务) 监控MySQL 监控Web状态 监控Nginx状态 监控Apache状态 监控Tomcat状态 1.2 SNMP监控流程(监控交换机或路由器) 交换机上开启snmp 在zabbix上添加监控(设置SNMP interfaces) 关联监控模版 1.3 IPMI(监控服务器硬件) 建议使用自定义item监控服务器硬件,在本地执行ipmitool命令来获取数据(虚拟机上没有远程控制卡,所以无法测试) 可以在本地执行ipmitool命令获取数据(命令需要安装) 1.4 JMX(使用Zabbix Java Gateway代理) 用来获取java数据,本次的实战内容 1.5 实战监控Nginx,Apache,MySQL,PHP-fpm 今天的实战内容,注意总结过程 1.6 Zabbix的Web监测 今天的实战内容,注意总结过程 所有zabbix模板包和源码包 链接: https:/