老李分享:《Linux Shell脚本攻略》 要点(二)

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478。Linuxshell是测试开发工程师的基本功之一,所以在poptest测试开发课堂上加入了大量的linuxshell的课程,为了学员开发跨平台的测试平台打基础。

1、cat

cat -s //多个空白行压缩成一个

cat *.txt | tr -s '\n'   //移除空白行

cat -n //加行号

2、find

沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。

eg:

find ./ ! -name "*.txt" -print

[root@localhost program_test]# find ./  -type f -name "*.swp" -delete

3、xargs 将标准输入数据转换成命令行参数。

[root@localhost program_test]# cat out.txt | xargs  //将单行转化为多行

[root@localhost program_test]# cat out.txt | xargs -n 3 //将单行转化为多行,每行的个数为3.

//统计.c和.cpp的文件的代码行数.  xargs -0 将'\0'作为定界符.

[root@localhost program_test]# find . -type f -name "*.c*" -print0 | xargs -0 wc -l
  10 ./main/cos_value.c
  10 ./main/sin_value.c
   5 ./main/haha.c
  15 ./main/main.c
   8 ./hello.cpp
   8 ./sin.c
  32 ./review2.cpp
  24 ./review5.cpp
   7 ./hello.c
119 total

4.tr命令(translate的简写) 可对来自标准输入的字符进行替换、删除及压缩。

即:将一组字符变为另一组字符。

1)替换

echo “HELLO” | tr [A-Z] [a-z]

2)删除

[root@localhost program_test]# echo "hello 123 world 456" | tr -d '0-9'

hello  world

3)压缩字符

[root@localhost program_test]# echo "GNU is     not UNIX" | tr -s ' '
GNU is not UNIX

//综合举例

[root@localhost program_test]# cat sum.txt
1
2
3
4
5
[root@localhost program_test]# cat sum.txt | echo $[ $(tr '\n' '+') 0 ]
15

5、md5校验

[root@localhost program_test]# md5sum out.txt > out.txt.md5
[root@localhost program_test]# cat out.txt.md5
fd46d559bf0c90170fef3da3c3de4c67  out.txt

//eg:

[root@localhost program_test]# find ./ -type f -name "*.txt" -print0 | xargs -0 md5sum >> curr_dir.md5

46e17910faf509df48dbfba9729ef018  ./banana.txt
c1dbbf63209a5580c052dc557510e7fb  ./11.txt
a80ddf02fa3a86c14066204e4bf2dbb9  ./multiline.txt

[root@localhost program_test]# md5sum -c curr_dir.md5
./banana.txt: OK
./11.txt: OK
./multiline.txt: OK

6、sort排序

//sort 按第2列排序

[root@localhost program_test]# sort -k 2 sort.txt
4 bad 5000
3  linux 50
1   mac 2000
2  winxp 100

//sort 逆序排序
[root@localhost program_test]# sort -r sort.txt
4 bad 5000
3  linux 50
2  winxp 100
1   mac 2000

//综合举例:统计字符串中每个字符出现的次数

[root@localhost program_test]# ./total_cnts.sh
AHEBHAAA
4A1B1E2H
[root@localhost program_test]# cat total_cnts.sh
INPUT="AHEBHAAA"
output=$(echo $INPUT | sed 's/[^.]/&\n/g' | sed '/^$/d' | sort | uniq -c | tr -d ' \n')
echo $INPUT
echo $output

[释义]: sed 's/[^.]/&\n/g'    //任意一个字符后面都加上\n

拆分如下:

[root@localhost program_test]# input="ahebhaaa"
[root@localhost program_test]# echo $input | sed 's/[^.]/&\n/g'
a
h
e
b
h
a
a
a

sed '/^$/d'  //删除空行

uniq -c         //统计各行文本出现的次数.

tr -d '\n  '     //删除换行符以及空格字符

7、临时文件命名

[root@localhost program_test]# temp_file="/tmp/var.$$"
[root@localhost program_test]# echo $temp_file
/tmp/var.16565

转载于:https://www.cnblogs.com/poptest/p/4981550.html

老李分享:《Linux Shell脚本攻略》 要点(二)相关推荐

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

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

  2. LINUX SHELL脚本攻略笔记[速查]

    LINUX SHELL脚本攻略笔记[速查] Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgr ...

  3. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

  4. linux shell脚本攻略第3版_「技术干货」师傅说不会写shell脚本的网安不是一个好黑客,实战...

    shell脚本? 在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就 ...

  5. 《Linux Shell脚本攻略》学习笔记-第一章

    1.1 简介 计算机可以从文本文件(称为shell脚本)中读取并执行命令. sehll脚本不仅节省了时间,而且清楚明白地表明了所执行的操作. bash shell变成了UNIX和Linux中既成事实的 ...

  6. Linux Shell脚本攻略-调试脚本+函数和参数

    调试脚本 可以利用Bash内建的调试工具或按照易于调试的方式编写脚本 # 1. 使用选项-x,启用shell脚本的跟踪调试功能 $ bash -x script.sh # 打印出所执行的每一行命令以及 ...

  7. Linux Shell脚本攻略学习总结:一

    终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...

  8. Linux Shell脚本攻略-玩转xargs

    玩转xargs Unix命令可以从标准输入(stdin)或命令行参数中接受数据.利用管道可以将一个命令的标准输出传入到另一个命令的标准输入 可以用别的方法来调用只能接受命令行参数的命令,最简单的方法就 ...

  9. linux shell脚本攻略 第二章 命令之乐 cat,find,tr,sort,uniq,split等

    目录 1. 使用cat进行拼接 2.录制并回放终端会话 3.find命令 4. xargs命令 5. tr命令进行转换 6.校验和与核实(md5) 7.加密工具与散列 8.排序,唯一与重复 9.临时文 ...

  10. Linux Shell 脚本攻略学习--四

    linux中(chattr)创建不可修改文件的方法 在常见的linux扩展文件系统中(如ext2.ext3.ext4等),可以将文件设置为不可修改(immutable).某些文件属性可帮助我们将文件设 ...

最新文章

  1. 阿里云查看mysql版本_查看mysql版本的四种方法及常用命令
  2. 微软成功测试氢燃料电池,为数据中心连续供电 48 小时
  3. java sql参数_java-从SQL查询检索参数
  4. JAVA——DES/ECB/PKCS7Padding加密算法[Cannot find any provider supporting DESEDE/CBC/PKCS7Padding]解决方案
  5. 【区块链:超级账本】Win10 Hyperledger环境搭建
  6. 如何通过outlet在SAP Spartacus的产品明细页面插入自定义UI
  7. Hey,孙叫兽的2020 CSDN年度报告已出炉,请查收!
  8. 为什么WordPress网站应尽量避免使用过多插件
  9. 扫地机器人什么牌子好?专业人士推荐这五款高端产品
  10. 【重磅】世界首例无创脑机接口,无大脑电极植入操控机器臂与飞行器
  11. python入门——P42魔法方法:算数运算1
  12. notepad 快速新建html,notepad编写html
  13. linux系统pdf目录编辑器,适用于Linux系统的七款PDF内容编辑器,附下载和安装方法...
  14. 一般描绘性形容词_英语中描绘性形容词是指哪种形容词?
  15. celeste实用技巧(第2弹)
  16. OpenCV可以识别文字吗?
  17. h5py 必知--String存储
  18. web前端期末大作业 HTML+CSS+JavaScript仿唯品会购物商城网页设计实例 企业网站制作
  19. 计算机任务驱动法教学应用,_任务驱动法_在计算机基础教学中的应用
  20. 王者服务器维护公告2月,王者荣耀2.28最新维护公告 2月28日更新维护到几点

热门文章

  1. MOOSE相场模块的内核模型
  2. PHP中文分词扩展 SCWS
  3. [转] 如何看透一个人
  4. Codeforces Round #518 (Div. 2) B LCM
  5. 一个小时学会jQuery
  6. 给.Net程序员和WEB程序员建议 (转自CSDN)
  7. 雅虎日本总裁:微软报价忽视了雅虎海外资产
  8. Windows Forms Programming In C# 读书笔记 - 第三章 Dialogs (2)
  9. $bzoj1079-SCOI2008$ 着色方案 $dp$
  10. python-常用模块-time、datetime模块