shell编程系列14--文本处理三剑客之awk的概述及常用方法总结 awk是一个文本处理工具,通常用于处理数据并生成结果报告 awk的命名是它的创始人 Alfred Aho.Peter Weinberger和Brian Kernighan 姓氏的首个字母组成的 awk的工作模式 语法格式 第一种形式: awk 'BEGIN{}pattern{commands}END{}' file_name BEGIN在匹配之前就执行的操作,pattern{commands}是对每一行的操作,END是匹配完后…
shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" "Mike" "Messi" "Jerry" "Hanmeimei" "Wang") 打印元素: ]} 打印元素个数: echo ${#array[@]} 打印某个元素长度: ]} 给元素赋值: array[]=…
shell编程系列18--文本处理三剑客之awk动作中的条件及if/while/do while/for循环语句条件语句 if(条件表达式) 动作1 else if(条件表达式) 动作2 else 动作3 循环语句: while循环: while(条件表达式) 动作 do while循环: do 动作 while(条件表达式) for循环: for(初始化计数器;计数器测试;计数器变更) 动作 .以:为分隔符,只打印/etc/passwd中第3个字段的数值在50-100范围内的行信息 # 简单运…
shell编程系列20--文本处理三剑客之awk常用选项 awk选项总结 选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号 [root@localhost shell]# awk -v num2="$num1" -v var1="$var" 'BEGIN{print num2,var1}' hello world # -f 选项 文件中读取表达式 [root@localhost shell]# .awk BEGIN{ str…
shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) 在str1中查找str2的位置 返回值为位置索引,从1开始计数 tolower(str) 转换为小写 转换后的小写字符串 toupper(str) 转换为大写 转换后的大写字符串 substr(str,m,n) 从str的m个字符开始,截取n位 截取后的子串 split(str,arr,fs) 按f…
shell编程系列17--文本处理三剑客之awk动作中的表达式用法 awk动作表达式中的算数运算符 awk动作中的表达式用法总结: 运算符 含义 + 加 - 减 * 乘 / 除 % 模 ^或** 乘方 ++x 在返回x变量之前,x变量加1 x++ 在返回x变量之后,x变量加1 --x 在返回x变量之前,x变量减1 x-- 在返回x变量之后,x变量减1 .使用awk计算/etc/services中的空白行数量 awk 'BEGIN{sum=0}/^$/{++sum}END{print sum}'…
shell编程系列16--文本处理三剑客之awk模式匹配的两种方法 awk的工作模式 第一种模式匹配:RegExp 第二种模式匹配:关系运算匹配 用法格式对照表 语法格式 含义 RegExp 按正则表达式匹配 关系运算 按关系运算匹配 awk模式匹配用法总结: 第一种方法:RegExp 第二种方法:运算符匹配 .RegExp 匹配/etc/passwd文件行中含有root字符串的所有行 awk 'BEGIN{FS=":"}/root/{print $0}' passwd 匹配/etc/…
shell编程系列15--文本处理三剑客之awk格式化输出printf printf的格式说明符 格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o 打印八进制数 %e 打印数学的科学计数法形式 %c 打印单个字符的ASCII码 printf的修饰符 修饰符 含义 - 左对齐 + 右对齐 # 显示8进制在前面加0,显示16进制在前面加0x awk格式化输出之printf总结: 格式符 %s 打印字符串 %d 打印10进制数 %f 打印浮点数 %x…
shell编程系列11--文本处理三剑客之sed利用sed删除文本中的内容 删除命令对照表 命令 含义 1d 删除第一行内容 ,10d 删除1行到10行的内容 ,+5d 删除10行到16行的内容 /pattern1/d 删除每行中匹配到pattern1的行内容 /pattern1/,/pattern2/d 删除匹配到pattern1的行直到匹配到pattern2的所有行内容 /pattern1/,10d 删除匹配到pattern1的行到10行的所有行内容 ,/pattern1/d 删除第10行直…
shell编程系列12--文本处理三剑客之sed利用sed修改文件内容 修改命令对照表 编辑命令 1s/old/new/ 替换第1行内容old为new ,10s/old/new/ 替换第1行到10行的内容old为new ,+5s/old/new/ 替换1行到6行的内容old为new /pattern1/s/old/new/ 替换匹配到pattern1的行内容old为new /pattern1/,/pattern2/s/old/new/ 替换匹配到pattern1的行直到匹配到pattern2的所…
shell编程系列10--文本处理三剑客之sed利用sed查询特定内容 利用sed查找文件内容: pattern种类: .8p .,10p .,+5p ./regexp/p .,/regexp/p ./regexp/,8p .打印/etc/passwd中第10行的内容 sed -n '10p' /etc/passwd .打印/etc/passwd中第8行开始,到第15行结束的内容 sed -n '8,15p' /etc/passwd .打印/etc/passwd中从第8行开始,然后+5行结束的内…
shell编程系列9--文本处理三剑客之sed概述及常见用法总结 sed的工作模式:对文本的行数据一行行处理,如下图 sed(stream editor),是流编辑器,依据特定的匹配模式,对文本逐行匹配,并对匹配行进行特定处理 语法格式 第一种形式:stdout | sed [option] "pattern command" 第二种形式:sed [option] "pattern command" file 命令格式:sed [option] "/pat…
shell编程系列13--文本处理三剑客之sed利用sed追加文件内容 追加用法总结: .a 在匹配行后面追加 .i 在匹配行前面追加 .r 将文件内容追加到匹配行后面 .w 将匹配行写入指定文件 追加用法示例详解: .a ().passwd文件第10行后面追加"Add Line Behind" sed -i '10aAdd Line Behind' passwd ().passwd文件第10行到第20行,每一行后面都追加"Test Line Behind" sed…
grep和egrep 第一种形式:grep [option] [pattern] [file1,file2...] 第二种形式:command | grep [option] [pattern] grep参数 选项 含义 -v 不显示匹配行信息 -i 搜索时忽略大小写 -n 显示行号 -r 递归搜索 -E 支持扩展正则表达式 -F 不按正则表达式匹配,按照字符串字面意思匹配 不常用选项 -c 只显示匹配行总数 -w 匹配整词 -x 匹配整行 -l 只显示文件名,不显示内容 -s 不显示错误信息…
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mysql中 jerry -- male mike -- female tracy -- male kobe -- male allen -- female curry -- male tom -- female # 创建表结构和student一样结构的student1表 MariaDB [school]…
shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使用tab键代替默认交互分隔符 -e 执行sql语句 其他选项 -E 垂直输出 -H 以HTML格式输出 -X 以XML格式输出 .写一个脚本,该脚本可以接收一个参数,参数为需要执行的SQL语句 .查询MYSQL任意表的数据,并将查询到的结果保存到HTML文件中 .查询MYSQL任意表的数据,并将查询…
原文 C#)Windows Shell 编程系列5 - 获取图标 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令 有关 PIDL PIDL亦有“绝对路径”与“相对路径”的概念.表示“相对路径”的PIDL(本文简称为“相对PIDL”)只有一个ITEMIDLIST结构的元素,用于标识相对于父文件夹的“路径”:表示“绝对路径”的PIDL(简称为“绝对PIDL…
原文(C#)Windows Shell 编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 上 一节说到如何弹出 IShellFolder 的上下文菜单,也就是 IContextMenu.有时候我们需要在这个菜单上面,加入一些属于自己的菜单项.举个例子,你打开资源管理器,查看左边目录树的…
原文 (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 接上一节:(C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开这里解释上一节中获取名称的方法 GetDisplayNameOf 定义: void GetDisplayNameOf(             IntPtr pidl,             SHGNO uFlags,             IntPtr lpName); 该方法是用来转换PIDL…
原文 (C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一篇:(C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 让我们详细解释一下 Shell 编程中最基本的一些函数.结构体和枚举. SHGetDesktopFolder  获取桌面的 IShellFolder 接口 [DllImport("shell32.dll")]         public static …
原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows 外壳编程.我们所看到的资源管理器以及整个桌面,都是一个 Shell. 关于 Windows 外壳的基本概念,我这里不做详细介绍,不了解的朋友,可以看看 姜伟华 的 Windows外壳名字空间的浏览. 好,现在让我们从基础学起,早日做出一个强大的资源管理器软件.(偶也是初学者,多多指教) 1 - 基…
shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_process 返回进程名列表字符串"nginx httpd mysql datanode" .function get_process_info 返回进程详细信息列表字符串,详细信息包括:运行状态.PID.CPU.MEM.启动时间 注:该函数可以接收一个参数,参数为进程名称 .funct…
shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机 备份mysql中的库或者表 mysqldump 常用参数详解: -u 用户名 -p 密码 -h 服务器ip地址 -d 等价于--no-data 只导出表结构 -t 等价于--no-create-info 只导出数据,不导出建表语句 -A 等价于--all-databases -B 等价于--databases 导出一个或多个数据库 需求:将school中的score表备份,并且将备份数据通过f…
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [root@localhost shell]# yum install mariadb mariadb-server mariadb-libs -y [root@localhost shell]# systemctl start mariadb [root@localhost shell]# netsta…
shell编程系列7--shell中常用的工具find.locate.which.whereis .文件查找之find命令 语法格式:find [路径] [选项] [操作] 选项 -name 根据文件名查找 -perm 根据文件权限查找 -prune 该选项可以排除某些查找目录 -user 根据文件属主查找 -group 根据文件属组查找 -mtime -n | +n 根据文件更改时间查找 -nogroup 查找无有效属组的文件 -nouser 查找无有效属主的文件 -newer file1 !…
shell编程系列6--shell中的函数 .函数介绍 linux shell中的函数和大多数编程语言中的函数一样 将相似的任务或者代码封装到函数中,供其他地方调用 语法格式 第一种格式 name() { command1 command2 ...... commondn } 第二种格式 function name { command1 command2 ...... commondn } .调用函数 直接使用函数名调用,可以将其想象成shell中的一条命令 函数内部可以直接使用参数 $.$..…
shell编程系列5--数学运算 方法1 expr $num1 operator $num2 方法2 $(($num1 operator $num2)) expr操作符对照表1 操作符 含义 num1 | num2 num1不为空且非0,返回num1;否则返回num2 num1 & num2 num1不为空且非0,返回num1:否则返回0 num1 < num2 num1小于num2,返回1:否则返回0 num1 <= num2 num1小于等于num2,返回1:否则返回0 num1…
shell编程系列4--有类型变量:字符串.只读类型.整数.数组 有类型变量总结: declare命令和typeset命令两者等价 declare.typeset命令都是用来定义变量类型的 declare命令参数总结 .declare -r 将变量设置为只读类型 declare -r var="hello" var="world" # 变量默认可以修改 [root@es01 shell]# var2="hello world" [root@es0…
shell编程系列3--命令替换 命令替换 命令替换总结 方法1 `command` 方法2 $(command) 例子1: 获取系统的所有用户并输出 for循环能以空格.换行.tab键作为分隔符 [root@localhost shell]# cat example_1.sh #!/bin/bash # index= ` do echo "this is $index user: $user" index=$(($index + )) done [root@localhost she…
shell编程系列2--字符串的处理 字符串的处理 .计算字符串的长度 方法1 ${#string} 方法2 expr length "$string" (如果string中间有空格,必须加双引号) 例子: # 通过${#string}获取字符串长度 [root@localhost shell]# var1="hello world" [root@localhost shell]# len=${#var1} [root@localhost shell]# echo…