脚本基本语句用法笔记

  • grep

-i 查询时不区分大小写
-n打印匹配的行号
-v 打印不匹配的行
-AX包括每次匹配之后X行
-BX包括每次匹配之后X行
cat /etc/passwd |grep student (-i 表示不关心大小写)

正则表达式中 ^代表开始 $代表结束
cat /etc/passwd|grep  ^#  -v     (去掉以#作为起始的行)
cat /etc/passwd|grep  ^$  -v     (去掉空行)

-E增强符号的使用

cat inittab |grep -Ev  ‘(^#|^$)’  等价于   cat inittab |grep -Ev ‘^(#|$)’

文件处理后重新保存错误示范:

cat inittab |grep -Ev ‘^(#|$)’ >inittab  这样会得到一个空文件。

解决办法:

cat inittab |grep -Ev ‘^(#|$)’ >inittab.tmp ;cat ./inittab.tmp > inittab;rm -f ./inittab.tmp
  • sed
sed  ‘s/ search /  replace / ’   或者 ‘s#    #    # ’ 或者 ‘s@    @    @’
echo “/usr/local” |sed ‘s@/usr@/var@’
cat ./iptables.list | sed ‘s/172.24./10.0./’  重新cat ./iptables.list后发现内容并没有发生改变再次印证了sed只是改变的流

sed 的搜索默认是在一行里找到第一个符合条件的信息就停止搜索行内剩余的信息。过想继续搜索行内的其他符合条件的信息需要添加g形成

s/  /   /g’ 的形式   ‘s/  /   /i’可以忽略大小写
cat ./iptables.list | sed ‘1,50s/172.24./10.0./’  1到50行中的进行替换
cat animal.txt |sed ‘/cat/,/dog/s/$/<---------/’传说中的猫鼠游戏可以实现模糊行的匹配

遇到cat开始dog结束 在这些符合的行中在结尾添加<—————
如果没有遇到dog那就一直执行一直到最后
sed的删除操作 cat iptables.list |sed ‘/^#/d’ 形式就是如此
要实现将#开始的 或者空行都删掉

cat iptables.list |sed ‘/^#/d’ |sed ‘/^$/d’
cat iptables.list |sed  -e  ‘/^#/d’ -e  ‘/^$/d’
  • wc对行数的统计

cat /etc/passwd |wc
37 63 1737
出现有37行 63个word 1737个字符(character)
cat /etc/passwd |wc -w
63
cat /etc/passwd |wc -l
37
cat /etc/passwd |wc -c
1737
cat /etc/passwd |grep -i studenttt |wc -l 用该命令的输出数值来判断是否存在,cat命令在不存在符合要求的时候,是不会输出信息的,故而不能做判断用。

  • awk

awk’ /匹配字符串/’文件名 匹配字符串可以用正则表达式来表示
awk ‘/root/’ /etc/passwd 等价于 grep root /etc/passwd
awk ‘{处理动作}’文件名
awk -F:’{print 111 3}’ /etc/passwd
awk ‘/匹配字符串/ {处理动作}’文件名
awk -F:’/root/{print 1,1,1 ,3}’ /etc/passwd
awk ‘{print 1,1,1,3}’ ~/names 可以找出第一列和第三列的内容
awk ‘{print 1,1,1,3}’ ~/names 该表达式中逗号表示一个空格的分隔符
如果该表达式中逗号用空格代替,效果等价于awk ‘{printf 11<script id="MathJax-Element-5" type="math/tex">1</script>3}’

~/names  仅仅把第1,3列拼接在一起。
print函数将变量和字符夹杂着输出,如同linux中的echo命令
shell>date
Wed Feb 24 10:22:28 CST 2010
shell> date|gawk’{print “Month:”$2”\nYear:”,$6}’
Month:Feb
Year:2010

最近在读一个脚本,先把里面这些晦涩的脚本用法摘出来,磨刀不误砍柴工。

shell脚本常用语句用法笔记相关推荐

  1. shell脚本的一些用法笔记

    1.在一般命令窗口输入的命令直接拷贝到脚本文件中就可以执行. 2.判断文件或文件夹是否存在.具有执行权力等.[改写自网络] #!/bin/shNovaPath="/var/log/httpd ...

  2. linux脚本基本命令大全,Shell脚本常用命令

    Shell脚本常用命令 1           Shell中的特殊符号 1.1           $  美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到" ...

  3. shell脚本的系统性学习笔记

    shell脚本的系统性学习笔记 文章目录 shell脚本的系统性学习笔记 一.入门基础 1.1 脚本的书写格式 1.2脚本的各种执行方式 1.3数据的输入与输出 1.4输入输出重定向 1.5变量 二. ...

  4. shell 脚本循环语句

    shell脚本循环语句 一.循环语句 1.1 for循环语句 1.2 for循环语法 1.3 for循环案例 1.4 类C风格循环 二.while语法 2.1 语法结构 2.2 while语法使用的一 ...

  5. shell脚本常用语法大全

    shell脚本常用语法大全 一.shell简介 二.shell常用命令 2.1echo 2.2printf 2.3test 三.shell变量 3.1变量命名规则 3.2赋值方式 3.3使用变量 3. ...

  6. Linux Shell脚本攻略 读书笔记

    内容目录: 嗨,Echo一下 给终端来点颜色 shell的控制结构 算术比较 目录操作 网站下载 tar 归档工具 rsync 备份系统快照 ftp自动传输 磁盘管理 故障排查 使用syslog记录日 ...

  7. linux 脚本 if判断 o,shell脚本常用脚本:if判断

    shell脚本常用脚本:if判断 str1 = str2当两个串有相同内容.长度时为真 str1 != str2当串str1和str2不等时为真 -n str1当串的长度大于0时为真(串非空) -z ...

  8. shell脚本之echo用法

    shell脚本之echo用法 1.echo常见转义符号 符号 功能描述 \b 退格键(backspace) \f 换行但光标仍停留在原来的位置 \n 换行且光标移至行首 \r 光标移至行首但不换行 \ ...

  9. shell脚本中的$用法

    shell脚本中的$用法 变量 含义 $0 shell脚本的文件名 $1 ~ $n 添加到shell脚本中的各参数: 即执行shell脚本时后跟的内容: $1为第1参数,$2为第2参数 $? shel ...

最新文章

  1. Java Web项目第二次总结
  2. matlab pdist函数官方详解
  3. MySQL重温笔记-索引
  4. 持续集成之jenkins基础
  5. 普中28335开发攻略_TMS320F28335项目开发记录1_CCS的使用介绍
  6. 介绍一个好用的Chrome扩展,能高效管理cookie
  7. 第2、3讲 图像的存储格式
  8. 组件使用中的细节点02
  9. 【Python】Python实战从入门到精通之七 -- 教你深入理解异常处理
  10. 【报告分享】阿里巴巴全生态就业体系与就业质量研究报告.pdf(附下载链接)...
  11. Lync 小技巧-8-超速-更新-地址簿
  12. FFmpeg开发实战(六):jpeg转换为yuv格式图像
  13. MarkDown学习备忘录
  14. html组态插件_组态 web组态 组态插件 编辑器 工业组态 物联网组态 组态编辑器...
  15. Pycharm 如何将背景设置成自己喜欢的图片详文
  16. extern、struct等关键字
  17. python制作英语字典_python制作英文学习字典案列
  18. POST 和 PUT 方法区别
  19. 极客大学产品经理训练营:运营思维 第19课总结
  20. 泰克|安捷伦|普源|PICO示波器程控软件二次开发NS-Scope

热门文章

  1. Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)
  2. 计算机软件技术基础fifo算法,软件技术基础真题
  3. isql 测试mysql连接_[libco] 协程库学习,测试连接 mysql
  4. android动画笔记二
  5. leetcode690. 员工的重要性(bfs)
  6. java开发第一天上班_从第一天开始,如何成为一名优秀的团队合作伙伴,成为初级开发人员
  7. 2019-08-01 纪中NOIP模拟赛B组
  8. [HNOI2011]XOR和路径
  9. vue-resource跨域问题
  10. 20169210《Linux内核原理与分析》第十二周作业