关于Shell的实用技巧分享
来源:互联网 发布:3d studio max mac版 编辑:程序博客网 时间:2024/05/22 10:52
学过了不代表你知道了,掌握了不代表你能一直记得,温故而知新。辛辛苦苦学完的Shell全部抛到九霄云外了。。。。。
借助周末好时光,带上五姑娘,把shell相关的知识随意的复习,分享一下。
Shell的基本操作就不说了,聊一聊shell的高级文本处理命令吧!通常我们用到的文本处理命令分为以下八个:
wc-计数,sort-排序,uniq-去重,cut-切割,grep-筛选,sed-流编辑,awk-报表生成器,find-查找
1、wc,word count-统计文件行数,字节,字符数
常用指令有:
wc +文件名,计算文件内容的行数,字符数和字节数
wc -L 统计字符串长度
wc -l 统计文件的行数
wc -c 统计文件的字符数
2、sort--对整列进行排序
sort +文件名 对整个文件的行排序,字典顺序
-t: 以:为分隔符,-nk 取第二个字段排序。组合使用为:sort -nk 2 -t: +文件名
-u:去重
-r:去重
例子: sort -t: -u -nk 2 sort.txt 对sort文件的每一行按:切割,按照数值排序去重。
3、uniq去重,这个比较简单。直接在输出结果中加入| uniq就可以去掉重复的
-c 显示重复的次数
-u -c 一起表示打印不重复行
-d -c一起表示打印重复行
-w 2 表示 以前两个字符为标准
4、cut,切割结果。
例子:cut -d: -f 3,5 切割第三个和第五个字段
5、grep 文本生成器,主要的用途在于过滤。
可以直接接字符,字符串,也可以可以指定某个位置的文件中的行带有指定字符。
如: grep zhigang ./*.txt 显示当前所有txt文件中有zhigang的行。
-c,可以计数,算出行数多少。
-v,表示查询不含指定内容的行
复杂的表达式请使用正则表达式。
6、sed流编辑器,不会改变文件的内容,只是将读取的文件存入缓冲区,然后进行处理输出,不影响文件内容。
sed '3d' sed.txt 删除sed文件的第二行
sed ‘2c hello’ sed.txt 将第二行替换成hello
sed ‘s/hello/hi/g’ sed.txt 将所有的hello替换成hi
sed -n '2,4p' sed.txt 打印sed文件的第二行和第四行
7、awk--报表生成器,直接上一个例子的
cat abc.txt | awk -F: '{print $1 $3}' 打印查询结果中以:分割的第一个和第三个字段
awk 'BEGIN{FS=":";OFS="\t"}{print $1 $3}' /etc/passwd 打印指定目录下,按:分割的第一个和第三个数据,并且替换分隔符为\t
其他使用比较复杂,需要详细的了解。
8、find---查找
find 文件路径 -name “*.txt” 查找指定路径下的文本文件
-iname 忽略大小写
用的比较多的形式是正则表达式指定需要查找的内容
总的来说,shell编程在linux中运用起来非常的方便,很多的复杂操作,脚本编写,都可以通过shell命令轻松的搞定。但是shell语法本身比较出类,用起来不是很方便!
专门做shell编程的可以多研究,否者的话,只要能够看懂即可!
- 关于Shell的实用技巧分享
- Shell实用技巧
- 关于Linux的一些实用技巧
- 贴一个干活用的Shell(关于oracle的,分享)
- JavaScript关于表单脚本的一些实用技巧
- 关于lower_bound与upper_bound的实用技巧
- UE 实用技巧分享
- 分享来自zoomla!逐浪CMS的三个ASP.NET实用技巧
- Shell中的一些实用技巧
- Shell中的一些实用技巧
- 关于搜索引擎优化的五十个一句话实用技巧
- 关于PADS的一些概念和实用技巧(一)
- 关于PADS的一些概念和实用技巧(二)
- 关于豆瓣的分享
- 关于爱情观的分享
- iOS系统预览文件但不分享的实用技巧 (iOS10, QLPreviewController)
- 关于shell的知识
- 【实用技巧】阅读数,分享数,浏览数
- DNA Sequence LightOJ
- 分布式事物管理
- Uber终于消停了,新CEO说要带飞
- java1.8 常用集合源码学习:TreeSet
- 【思维】AtCoder Grand Contest(013)C[Ants on a Circle]题解
- 关于Shell的实用技巧分享
- 动态规划之小偷打劫房间
- 15nod1572-模拟&前缀和&枚举-宝岛地图
- 近期任务规划
- delete、truncate和drop清空表数据的区别?
- java函数的重载
- java1.8 过时集合源码学习:Vector
- 补提交卡 hihoCoder1051
- IFA有哪些值得注意的新产品?