老李分享:《Linux Shell脚本攻略》 要点(二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了老李分享:《Linux Shell脚本攻略》 要点(二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2655字,纯文字阅读大概需要4分钟。
内容图文
![老李分享:《Linux Shell脚本攻略》 要点(二)](/upload/InfoBanner/zyjiaocheng/1329/ffca785ed2a449f494e1f337eb4d5294.jpg)
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
原文:http://www.cnblogs.com/poptest/p/4981550.html
内容总结
以上是互联网集市为您收集整理的老李分享:《Linux Shell脚本攻略》 要点(二)全部内容,希望文章能够帮你解决老李分享:《Linux Shell脚本攻略》 要点(二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。