Linux 命令之head, tail, tr, sort, uniq, grep
2024-09-06 11:32:53
head [filename]
head -n 11 [filename] -> First 11 lines
head -c 20 [filename] -> First 20 characters
head默认为显示前10行。
tail [filename]
tail -n 11 [filename] -> Last 11 lines
tail -c 20 [filename] -> Last 20 characters
如果要显示文本的第10-22行可以使用:
head -n22 | tail -n12
tr的用法为:
$ tr [OPTION] SET1 [SET2]
如果SET1 和 SET2都给出,而且OPTION不是-d,那么就是将第一个集合中的元素替换为第二个集合中的元素。
$ tr a-z A-Z
thegeekstuff
THEGEEKSTUFF
如果需要将空格替换为一个tab, 如果存在连续的空格,需要加-s选项,否则默认将每个空格都替换为一个tab:
$ echo "This is for testing" | tr -s [:space:] '\t'
This is for testing
如果要删除某个元素,可以使用(如删除所有数字):
$ echo "my username is 432234" | tr -d [:digit:]
my username is
如果需要删除除了数字以外的其他字符,可以使用-c选项:
$ echo "my username is 432234" | tr -cd [:digit:]
432234
如果要将文件的所有行合并为一行,可以使用:
$ tr -s '\n' ' ' < file.txt
sort有几个常用选项:
-n 按数字排序
-r 逆序
-k m,n 按第m-n个field排序
-t 改变文件的分隔符
如要对一个以tab为分隔符的文本按第二个field进行排序,可以使用:
$ sort -k2,2 -t $'\t' phonebook
Doe, John 555-1234
Fogarty, Suzie 555-2314
Doe, Jane 555-3214
Avery, Cory 555-4132
Smith, Brett 555-4321
这里用$'\t'表示tab
命令uniq的几个常用选项为:
-c 输出每行连续出现的次数
-d 只输出连续出现的行,对于连续出现多次的行只会输出一次
-D 和-d的不同点在于会完整的输出符合条件的行
-u 只输出没有连续出现的行
-i 比较时忽略大小写
-w n 只比较前n个字符
-f n 忽略比较前n个filed
-s n 忽略比较前n个字符
grep常用方法:
如果在一个文件中查找一个字符串,可以用:
grep "literal_string" filename
如果在多个文件中查找指定字符串:
grep "string" FILE_PATTERN
-i选项忽略大小写
在文件中查找多个字符串:
grep "REGEX" filename
-w选项用来只查找指定的WORD,而忽略WORD作为字串的情况
-c 选项用来查看出现次数
-v选项用来输出没有出现指定字符串的行
-e 选项可以用来指定多个字符串:
$ grep -v -e "a" -e "b" -e "c" test-file.txt
-l(小写的L)选项用来输出含有指定字符串的文件名:
$ grep -l this demo_*
demo_file
demo_file1
另外,还有-A,-B,-C等选项。
最新文章
- C语言 回文
- 2.0 (1)安装MongoDB
- 静态代码审查工具FxCop插件开发(c#)
- 东大OJ-双塔问题
- git 冲突解决
- [Xamarin] 關於發出Notification 的大小事 (转帖)
- postgresql存储二进制大数据文件
- ruby 学习 -- Array --2
- 图文讲解:iOS App提交流程
- 使用Filter防止浏览器缓存页面或请求结果
- 暑假练习赛 007 C - OCR
- nexus私服搭建及maven生命周期
- Linux部署笔记分享
- Android application捕获崩溃异常
- 【转】【WPF】WPF中的Button的MouseDown事件不触发问题
- 理解Liang-Barsky裁剪算法的算法原理
- 解决mysql日志显示时间和“Got an error reading communication packets” 问题
- 一次“ora-12170 tns 连接超时”的经历
- 很不错的python 机器学习博客
- Unable to find manifest signing certificate in the certificate store