shell grep 变量_测试开发基本技能(-)shell(2)

Shell 输入输出
Read 用来读取输入,并赋值给变量
echo ,printf可以简单输出变量。
> file 将输出重定向到另一个文件
>> 表示追加等价于tee -a
< file 输入重定向
| 表示管道,也就是前一个命令的输出传入下一个命令的输入 文件描述符
输入文件—标准输入0
输出文件—标准输出1
错误输出文件—标准错误2
使用 2>&1 >/tmp/tmp < /tmp/tmp

43cbb1629239e596b1d9cd787d0a72e6.png

管道
把不同程序的输入和输出连接
可以连接更多命令
常见的组合命令Linux三剑客
echo hello world | read x; echo $x
echo hello world | while read x;do echo $x;done

752313c26766fd97a247371399da4b6d.png

grep
基于正则表达式查找满足条件的行
数据查找定位
grep pattern file
grep -i pattern file 忽略大小写
grep -v pattern file 不显示匹配的行
grep -o pattern file 把每个匹配的内容用独立的行显示
grep -E pattern file 使用扩展正则表达式
grep -A-B -C pattern file 打印命中数据的上下文
grep pattern -r dir/ 递归搜索 pattern正则表达式
基本表达式(BRE)
^ 开头 $结尾
[a-z] [0-9] 区间
* 0个或多个
基本正则(BRE)与扩展正则的区别(ERE)
? ?贪婪匹配
+ ?个或者多个
() 分组
{} 范围约束
| 匹配多个表达式的任何一个
curl https://testerhome.com | grep -o 'http://[a-zA-Z0-9.-]*'awk
根据定位到的数据行处理其中的分段
awk 'pattern{action}'
awk 'BEGIN{}END{}' 开始和结束
awk '/Running/' 正则匹配
awk '/aa/,/bb/' 区间选择
awk '$2~/xxx/' 字段匹配
awk 'NR==2' 取第二行
awk 'NR>1' 去掉第一行awk内置变量
FS 字段分隔符
OFS 输出数据的字段分隔符
RS 记录分隔符
ORS 输出字段的行分隔符
NF 字段数
NR 记录数awk的字段数据处理
-F 参数指定字段分隔符
BEGIN{FS="_"} 也可以表示分隔符
$0代表当前的记录
$1代表第一个字段
$N 代表第N个字段
$NF 代表最后一个字段
把单行分拆为多行
echo $PATH | awk 'BEGIN{RS=":"}{print $0}'
echo $PATH | awk 'BEGIN{RS=":"}{print NR,$0}'
echo $PATH | awk 'BEGIN{RS=":"}END{print NR}'
多行组合为单行
echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | awk
'BEGIN{FS="n";ORS=":"}{print $0}'sed
sed [addr]X[options]
-e 表达式
sed -n '2p' 打印第二行
sed 's#hello#world#' 修改
-i 直接修改源?件
-E 扩展表达式
--debug 调试
echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | sed 's#/
#----#g'
echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | sed -n '/
^/bin/,/sbin/p'
sed -i '.bak' -e '' -e ''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值