shell字符串截取

shell编程之字符串处理

非 Y 不嫁゛ 提交于 2019-11-30 04:15:32
# 1 .#号截取,删除左边字符,保留右边字符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 echo ${var#*//} # 2. ## 号截取,删除左边字符,保留右边字符,##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 echo ${var##*/} # 3. %号截取,删除右边字符,保留左边字符,%/* 表示从右边开始,删除第一个 / 号及右边的字符 echo ${var%/*} # 4. %% 号截取,删除右边字符,保留左边字符,%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符 echo ${var%%/*} # 5. 从左边第几个字符开始,及字符的个数,其中的 0 表示左边第一个字符开始,5 表示字符的总个数 echo ${var:0:5} # 6. 从左边第几个字符开始,一直到结束,其中的 7 表示左边第8个字符开始,一直到结束 echo ${var:7} # 7. 从右边第几个字符开始,及字符的个数,其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数 echo ${var:0-7:3} # 8. 从右边第几个字符开始,一直到结束,表示从右边第七个字符开始,一直到结束 echo ${var:0-7} #左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示 first=7 length=5

Shell脚本学习笔记

喜欢而已 提交于 2019-11-29 12:20:39
shell脚本 Linux 的 Shell 种类众多,常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) Bash也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell 入门: 创建一个名字为Hello的shell脚本:vi Hello.sh (后缀名无所谓,sh是习惯) 运行shell脚本:sh 脚本名 变量: 创建 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:str="hello world!!" 使用变量需要在变量名钱加上$ 为了在开发中表示为变量的时候,会变成${str} 给变量二次赋值:str="" 不需要加上$和{} 创建只读变量:myUrl="http://www.google.com" readonly myUrl 如果尝试改变只读变量的话会报错 删除变量:unset variable_name 变量被删除后不能再次使用。unset 命令不能删除只读变量。 变量类型 运行shell时,会同时存在三种变量: 1)局部变量

SHELL脚本学习笔记

浪尽此生 提交于 2019-11-29 12:19:51
SHELL脚本学习笔记 创建可执行的 SHELL 脚本 touch shell.sh chmod +x shell.sh # 授权:可执行 内建函数 # 打印 echo # 不换行打印 echo -n 变量 # 变量命名规范:字母、数字和下划线 # 取变量值: ${variable_name} 或者 $variable_name # 获取命令结果的值:$(command_name) 或者 command_name # 定义只读变量 readonly variable_name # 删除变量(不能删除只读变量):unset variable_name # SHELL变量作用域:局部变量、全局变量、环境变 SHELL 特殊变量 变量 含义 $0 当前脚本的文件名 $n (n>=1) 传递给脚本或者函数的参数。n 表示第一个参数,${10}… $# 传递给脚本或者函数的参数个数 $* 传递给脚本或者函数的所有参数 $@ 传递给脚本或者函数的所有参数, $? 上个命令的退出状态,或者函数返回值 $$ 当前SHELL脚本进程 ID 当它们被双引号" "包含时,就会有区别了: "$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。 "$@"仍然将每个参数都看作一份数据,彼此之间是独立的。 函数定义 # 函数定义 # 定义 Shell 函数时不能带参数 # function

【shell教程02】Shell 变量、shell字符串、shell数组、shell注释

血红的双手。 提交于 2019-11-29 04:44:29
一、Shell 变量 1、定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意, 变量名和等号之间不能有空格 ,这可能和你熟悉的所有编程语言都不一样。同时,变量名的 命名 须遵循如下 规则 : 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 有效的 Shell 变量名示例如下: RUNOOB LD_LIBRARY_PATH _var var2 无效的变量命名: ?var=123 user*name=runoob 除了显式地直接赋值,还可以用语句给变量赋值,如: for file in `ls /etc` 或 for file in $(ls /etc) 以上语句将 /etc 下目录的文件名循环出来。 2、使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可,如: your_name="qinjx" echo $your_name echo ${your_name} 变量名外面的花括号是可选的,加不加都行 ,加花括号是为了帮助解释器识别变量的边界 ,比如下面这种情况: for skill in Ada Coffe Action Java; do echo "I am

Awk使用及站点日志分析

北城以北 提交于 2019-11-29 04:22:10
Awk 使用及站点日志分析 Awk 简单介绍 概述 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本号: awk、nawk和gawk,未作特别说明,一般指gawk。 awk程序的报告生成能力通经常使用来从大文本文件里提取数据元素并将它们格式化成可读的报告。最完美的样例是格式化日志文件。 awk程序同意从日志文件里仅仅过滤出你想要看的数据 Awk 使用 awk 命令格式和选项 语法形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 经常使用命令选项 -F fs fs指定输入分隔符,fs能够是字符串或正則表達式,如-F: -v var=value 赋值一个用户定义变量,将外部变量传递给awk -f scripfile 从脚本文件里读取awk命令 -m[fr] val 对val值设置内在限制。-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能。在标准awk中不适用。 模式: /正則表達式/:使用通配符的扩展集。

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 awk用法

拥有回忆 提交于 2019-11-28 04:12:07
在学习awk之前我们应该都学过sed,grep,tr,cut等等命令,这些命令都是为了方便我们对Linux下文本和数据的处理,但是我们会发现很多时候这些命令并不能一下子就完全解决我们的需求,很多时候我们都需要使用管道符结合这些命令来使用,今天我就给大家介绍一个命令awk,他就能很好的解决我们对文本和数据处理的需求,使我们一条命令就解决很多问题。 一、awk命令简介 awk被称为文本处理三剑客之一,其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 所以说awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 二、awk命令格式及选项 语法形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s)

Linux Shell 截取字符串

南笙酒味 提交于 2019-11-27 20:42:40
shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var:start} ${var:0-start:len} ${var:0-start} 下面用几个例子展示一下: 1) 获得字符串的长度 语法: ${#var} 示例代码: str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" length=${#str} echo "length : [${length}]" 执行结果: string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string] length : [61] 2) 使用 # 和 ## 获取尾部子字符串 2.1) # 最小限度从前面截取word 语法: ${parameter#word} 示例代码: str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string" echo "string : [${str}]" #分割符为'/' substr=${str#*/} echo "substr :

awk

送分小仙女□ 提交于 2019-11-27 16:38:23
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。 awk命令格式和选项 语法形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 常用命令选项 -F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F: -v var=value 赋值一个用户定义变量,将外部变量传递给awk -f scripfile 从脚本文件中读取awk命令 -m[fr] val 对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。 awk模式和操作 awk脚本是由模式和操作组成的。 模式 模式可以是以下任意一个: /正则表达式/:使用通配符的扩展集。 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试。 模式匹配表达式:用运算符 ~ (匹配

python3.7知识点汇总

本秂侑毒 提交于 2019-11-27 06:00:03
Python3.7从零开始学 —|进入Python3.7的精彩世界 —|---|Python起源 —|---|—|Python作者简介 —|---|—|---|Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。1989年,他创立了Python语言。 —|---|—|Python发展简介 —|---|—|---|1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。 —|---|—|---|1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。 —|---|—|---|1999年,Granddaddy of Python web frameworks, Zope 1 was released in 1999 —|---|—|---|1994年,Python 1.0 - January 1994 增加了 lambda, map, filter