实例 1、查询匹配字符的文件 cat /etc/passwd |grep root root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root...:/sbin/nologin 2、查询匹配字符前一行 cat /etc/passwd |grep root -B 1 root:x:0:0:root:/root:/bin/bash -- mail:x...op开头的行 cat /etc/passwd |grep ^op operator:x:11:0:operator:/root:/sbin/nologin 6、查询匹配以bash结尾的行 cat /etc.../passwd | grep bash$ root:x:0:0:root:/root:/bin/bash devops:x:1000:1000::/home/devops:/bin/bash sed命令使用.... # 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。 - * # 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。
hello | sed "1d" 删除第一行.删除前三行"1,3d" 使用grep查找多个字符串: #pgrep -l sshd 查看sshd的所有进程(格式:PID 服务名) 其他参数... -o 显示终止程序的PID -n显示开始的PID egrep是过滤多个字符串的命令,和grep用法一般 #egrep "xxb|ntp|rpcbind" /etc/passwd 过滤多个字符串...模式描述了将要分隔中的元素。这些元素用圆括号中包含一个或者多个(.)来表示,一个点表示单个字符。当字符串被分隔之后,模式中的每一个元素相当于输入串中的一个域。 (.)...比如转义. $ /等 使用grep从一个模式匹配中返回末尾行: 和正则表达式一起运行grep可以很容易的从标识的文件或者输出中获取某些行. # cat /etc/passwd | awk '$1 ~ /...home/xxb:/bin/bash 使用grep返回模式匹配之前的行: # awk '/sshd/{print pNR,p0}{pNR=NR;p0=$0}' /etc/passwd 第一个命令在文件中查找模式串
注:我的使用场景是从A集群同步数据到B集群迁移Elasticdump 简介Elasticdump是一个开源工具,它可以用于对Elasticsearch索引的数据和映射(mapping)进行导入、导出操作...这是一个简单的bash脚本示例,用于还原在一个文件夹中的所有索引备份:#!...:9200/${index_name} \ --type=datadone在这个脚本中,我们假设备份文件的名字与索引的名字相对应,备份文件的扩展名为.json,通过移除.json,我们获取了原始的索引名以便于还原...匹配前缀索引备份与还原匹配前缀索引备份有时我们可能需要备份名称有共同前缀的多个索引。下面是一个通过前缀备份多个索引的bash脚本示例:#!...[ -z "$BACKUP_FILES" ]; then echo "没有发现匹配前缀的备份文件, 请检查你的备份目录."
存放一个或多个目录,栈中至少要有一个元素。...,直到将(从左边数)第N个元素移动到栈顶,由0开始计。...pushd -N # 将栈内元素循环左移,直到将(从右边数)第N个元素移动到栈顶,由0开始计。 pushd -n dir # 将目录入栈,但不改变当前元素,即将目录插入栈中作为第二个元素。...popd -N # 删除栈中(从右边数)第N个元素,由0开始计。...pop -n # 不改变当前目录(也就是不改变栈顶元素,操作除了栈顶外栈内其他元素) 实际示例: #示例1.执行 popd -1 命令后从目录栈中移除了倒数第二个条目 ❯ popd -1 /etc/
利用通配符可以同时引用多个文件,常用的通配符有 * 和 ? ,* 号表示可以匹配任意长度的任何字符,? 号代表了任意一个字符。 例如: ls *.png ls b? ls b???...开头的文件名匹配 利用 [ ]、- 和 ! 组成的字符组模式还可以扩展要匹配的文件范围 [ ] 规定在指定的字符范围任意一个字符都满足匹配 - 规定在某一个区间范围内匹配 !...切片的语法是:list[n1:n2:n3],其中 n1 为切片的起始索引,如果省略则为从 0 开始;n2 为结束索引,若省略则为最后一个;n3 则表示在起始索引和结束索引的范围内每 n3 个取一个元素,...不同之处在于在这个函数中,yield 还需要放在一个循环语句中,这样,这个生成器才能生成多个列表元素。.../bin/bash app=httpd ps aux|grep -v grep | grep httpd > /opt/jar/sys.log && grep "$app" /opt/jar/sys.l
/bin/bash 命令不能和注释在同一行上,也就是注释的后面 ; 命令分隔符,可以在同一行上写多个命令 某些情况需要使用转义符转义 ;; 双分号,终止case选项 . bash内置命令 1.点(...# 等号两边不能空格 array_name=(element_1 element_2 ... element_N) # 声明偶数 arr_odd=(1 3 5 7 9) 8.2 获取数组中的元素 #...14.2 read命令 -- 从控制台读取输入 参考:https://www.computerhope.com/unix/bash/read.htm 从屏幕标准输入中读取一行。...|仅显示匹配的字符串(可以和 -n 结合使用)|| [grep仅显示匹配的字符.png] |-v|--invert-match|小写,显示不匹配字符的内容|| [grep显示不匹配patten的字符内容....png] |-m|--max-count=NUM|显示匹配字符的某一行的内容,适合绝对匹配|| [grep显示匹配pattern的特定内容.png] 15.3 其他两个常用RE进行的grep操作 显示文件中以
内部直接定义好的特殊参数,我们可以直接拿过来用 脚本文件 $0 获取脚本文件名 $# 获取脚本执行时候的参数总个数 $n 获取脚本执行时候的指定位置参数的内容 $?.../bin/bash # 获取脚本文件名称 echo "当前脚本文件名称是: get_name.sh" echo "当前脚本文件名称是: $0" #!...下标值 定义格式 array_name=(value1 ... valuen) 注意: 元素内容必须下()范围中 元素彼此间使用空格隔开 array_name[...array_name[index]} @ * 获取长度 单元素长度 echo ${#array_name[index]} 数组元素个数echo ${#array_name[...无 模拟对文件编辑 匹配条件: 数值 内容 匹配符号: / # @ !
> -c -- bash eg: kubectl exec -it redis-master-cln81 -- bash 查看容器的日志 kubectl logs <pod-name.../my2.yaml # 使用多个文件创建 kubectl apply -f ....pod 清单的文档说明 # 从标准输入创建多个 YAML 对象 cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata:.../0/livenessProbe"}]' # 在带位置数组中添加元素 kubectl patch sa default --type='json' -p='[{"op": "add", "path"...# 删除在 my-ns 名字空间中全部的 Pods 和服务 # 删除所有与 pattern1 或 pattern2 awk 模式匹配的
从输出可以看到,grep 找到了包含“root”字符串的文本行。...常用的正则表达式元字符有: ^(小写): 行首定位符,用于从行首开始匹配 $(小写): 行末定位符,用于从行末开始匹配 . : 匹配任意一个字符 *: 匹配0个或多个前导字符 +: 匹配1个或多个前导字符...结尾的行 grep ro.t /etc/passwd # 匹配包含ro和t的行,中间任意一个字符 grep ro*t /etc/passwd # 匹配包含ro零个或多个字符及t的行...匹配以root结尾的行 grep ro*t /etc/passwd # 匹配包含ro零个或多个字符及t的行 grep \sroot /etc/passwd # 匹配root之前有空白字符的行...例如,我们可以使用 grep 从 /etc/passwd 文件中提取出 bash shell 的用户,并保存到 bash_users 文件: grep bash /etc/passwd > bash_users
# 在 bash 中设置当前 shell 的自动补全,要先安装 bash-completion 包。...# 同时使用多个 kubeconfig 文件并查看合并的配置 KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 kubectl config view # 获取...pod 清单的文档说明 # 从标准输入创建多个 YAML 对象 cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata:.../0/livenessProbe"}]' # 在带位置数组中添加元素 kubectl patch sa default --type='json' -p='[{"op": "add", "path":...# 删除在 my-ns 名字空间中全部的 Pods 和服务 # 删除所有与 pattern1 或 pattern2 awk 模式匹配的
/bin/bash # 特殊字符 # 通配符 # 通配符用于模式匹配,常见的通配符有 *、? 和用 [] 括起来的字符序列。..."数组长度是 ${#mArray[*]}" # 数组截取 # 可以获取子数组,下面示例为获取数组的第 1、2 下标位置的元素 echo ${mArray[@]: 1:2} # 可以获取数组中某个元素的若干字符...,下面示例为获取数组中第二个元素的 从0开始 3个字符 echo ${mArray[1]: 0:3} # 合并数组 Front=("javascript" "typescript") # 数组声明也可以忽略...' # grep # grep 是基于行的文本搜索工具,该命令常用的参数有: # grep [-ivnc] '需要匹配的字符' 文件名 # -i 不区分大小写 # -c 统计包含匹配的行数 # -n...输出行号 # -v 反向匹配 # 其中 '需要匹配的字符' 支持正则表达式模式 grep -in 'func' 01_变量.sh # sort # sort 可以对无序的数据进行排序 # sort [
获取元素 $('div') //获取所有页面中的div元素 $('#foo') // 获取ID 为"foo"的元素 创建元素 $("Hellow...类型array 获取一个新数组,新数组只包含回调函数中返回true 的数组项 $.grep([1,2,3],function(item){ return item...[fromIndex] 参数可选,表示从哪个索引值开始向后搜索。 ...“,如果你想知道一个对象是否是一个javascript普通对象,使用isPlainObject. 17.add add(selector,[context]) 类型: self 添加元素到当前匹配的元素集合中...为每个匹配的元素添加指定的class类名。多个class类名使用空格分隔。
+字符串:从历史命令最近一条开始匹配,以该字符串开头的命令 别名(alias) 列出所有的别名设置:alias 设置别名:alias a=’b’ 取消别名设置:unalias a 重定向 重定向符号...|grep -n --color=auto 'home' //搜索多个字符串匹配 grep -E "aaa|bbb|ccc" 排序命令:sort 忽略大小写:-f 数字排序:-n 不显示重复行:-u...t(与-E一起使用) 匹配一个或者多个字符:ro+t(与-E一起使用) 贪婪模式,匹配所有:.* sed 查找替换 //打印第一行 sed '1p' -n 1.txt //打印第五行到最后一行,并显示行号...grep -n '.*' 1.txt | sed '5,$p' -n //包含root行 grep -n '.*' 1.txt | sed '/root/p' -n //正则匹配 grep -n.../bin/bash 注释符号:# 查看脚本执行过程,用于调试使用:bash/sh -x filename date //获取当前时间的年份,2017 date +%Y //获取当前时间的年份,最后两位,
$ cat /etc/passwd | grep tom tom:x:1001:1001:,,,:/home/tom:/bin/bash 上面的例子从/etc/passwd中抽取有gaga的行。...-c选项显示匹配行的数量: $ cat /etc/passwd | grep -c bash 3 $ cat /etc/passwd | grep -c tom 1 -n选项对行进行标号,可以用于确定匹配行的位置...: $ cat /etc/passwd | grep -n tom 31:tom:x:1001:1001:,,,:/home/tom:/bin/bash 从上面的例子看出,只要搜索模式gaga在行中,就会被匹配到...下面的例子搜索包含bash单词的行: $ cat /etc/passwd | grep -w bash tom:x:1001:1001:,,,:/home/tom:/bin/bash 如果在多个文件中搜索...使用-r在目录中进行递归搜索: $ grep -lr tom ./ ./.bash_history 这条命令列出在当前目录下递归搜索的包含gaga的文件的文件名。
实验准备 获取 Linu x 镜像文件:下载适用于虚拟机的 Linux 镜像文件,比如 Ubuntu 21.04,从 Ubuntu 官方网站 获取。...^:表示匹配行的开头。 *:表示匹配0个或多个空格。 #:表示匹配#字符。 SYM.sh:要搜索的文件名。...-v:表示显示不匹配的行,也就是去除匹配的行。 ^:表示匹配行的开头。 *:表示匹配0个或多个空格。 #:表示匹配#字符。 SYM.sh:要搜索的文件名。...① grep:在终端输入命令grep -v -E '^\s*($|#)' SYM.sh,命令解释如下: grep:命令行文本搜索工具。 -v:表示显示不匹配的行,也就是去除匹配的行。...这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。
grep 是一种强大的命令行工具,用于在一个或多个输入文件中搜索与正则表达式匹配的行并将每个匹配的行写入标准输出。...要指定两个或多个搜索模式,请使用以下-e选项: > grep -wv -e nologin -e bash /etc/passwd 你可以-e根据需要多次使用该选项。...以下示例打印不包含字符串nologin或bash 的行: > grep -wv 'nologin\|bash' /etc/passwd GNUgrep支持三种正则表达式语法,Basic、Extended...如果要使用选项-E扩展正则表达式,则|不应转义运算符,如下所示: > grep -Ewv 'nologin|bash' /etc/passwd 你可以指定不同的可能匹配项,这些匹配项可以是文字字符串或表达式集...,你可能希望从搜索结果中排除特定目录。
此命令也经常用在bash脚本的开头出以读取配置文件,获取其中的变量值。...6、数组: 数组:变量阵列,通过同一个名字进行存取操作; 连续的多个独立的内存空间(元素),每个内存空间相当于一个变量; bash的数组支持稀疏格式; 数组元素:数组名[索引] 索引..." [6]="Sat") (4) read -a a_name 引用数组元素:${array_name[index]} 获取数组长度:${#array[*]}, ${#array[@]} 即数组中元素的个数...; 6.2、数组切片:从数组中挑选指定的某个或某些元素: ${array[@]:offset:number} offset: 偏移的元素的个数; number:要取出的元素的个数;...${array[@]:offset} 取出偏移量之后剩余所有的元素; ${array[@]} 从数组中删除元素: unset array[index] 7、bash的字符串处理
$ grep bash file_read.sh #在file_read.sh内查找bash $ grep "bash" file_read.sh --color=auto...$ grep "bash" -n file_read.sh #在file_read.sh内查找bash $ grep "bash" -Rn ./ $ grep "bash...$ grep "name$" demo.sh #查找demo.sh内以name结尾的行,注意必须是最后且后面不能有空白字符 获取查找内容行数 需运用-c参数,不显示详细内容,只显示行数 $...* 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] 匹配一个指定范围内的字符,如/[sS]ed/匹配sed和Sed。.../pattern/,m:被模式匹配到的第一行起到m行 n,m 表示从n行到第m行 n,+m 表示从n行起往后增加m行 n~m:步进:以n行为基准值,每次增加m行 3.8 组合多个表达式 sed
领取专属 10元无门槛券
手把手带您无忧上云