Linux 命令之head, tail, tr, sort, uniq, grep
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等选项。
Linux 命令之head, tail, tr, sort, uniq, grep的更多相关文章
- 文件上传下载,命令之wget / curl / which / sort / uniq / cut / wc /tr /sed
目录 命令 1.文件的上传下载 2.从外网下载文件wget 3.curl文件下载 4.查找命令which 5.字符处理命令-排序sort 6.字符处理-去重uniq 7.字符处理-截取cut 8.字符 ...
- linux命令--cp、tail、cd、mv、history、cd
day1 cd命令 cd ../定位至上级目录 cd ./定位到当前目录 cd ~ 定位当前用户目录 cd / 定位系统根目录 cd - 返回进入此目录之前所在的目录 day2 mv命令: mv时,若 ...
- linux命令学习笔记(39):grep 命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来. grep全称是Global Regular Expression Print,表示全局正则表 ...
- 每天一个linux命令(1):tail 命令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...
- linux命令详解:tr命令
转:http://www.cnblogs.com/lwgdream/archive/2013/11/05/3407809.html 前言 通过tr命令来转化数据,比如大小写的转换:用转换成另外一种字符 ...
- Linux基础第六课——grep|awk|sort|uniq
管道符 | 前面的输出作为后面的输入 grep 可以理解为正则表达式 grep [参数] 文件名 -c 打印符合要求的行数 -v 打印不符合要求的行 -n 在输出符合要求的行的同时连同行号一起输出 - ...
- linux命令学习head和tail
linux命令head和tail是一对:more和less是一对. head和tail https://www.2cto.com/os/201507/414753.html 一个头,一个尾. tail ...
- [笔记]Linux命令行大全
date 显示当前时间和日期 cal 显示当前月份的日历 df 查看磁盘剩余空间的数量 free 显示空闲内存的数量 pwd 打印当前工作目录 cd 切换目录 ls 列出文件夹内容 绝对路径:开始于根 ...
- Linux命令总结【待续】
1.打包: tar -czf small.tar.gz small(目录名) ;压缩并打包目录 2.解包: tar zxvf 文件名 date -s 2015 2 12 修改时间 cp name ...
随机推荐
- Redis过滤器如何与Envoy代理一起使用
1.克隆源码到机器 [root@cx-- ~]# git clone https://github.com/envoyproxy/envoy Cloning into 'envoy'... remot ...
- php socket 发送HTTP请求 POST json
* HttpRequest.php <?php namespace et\http; /** * Created by PhpStorm. * User: mingzhanghui * Date ...
- Entityframwork.extended 配置mysql
entityframework.extended 这个是个很好的扩展,不过由于默认是配置成MSSQL的,今天在github上面 看到一个解决方案,亲测可用,下面贴代码 1.在DbContext 修改默 ...
- npm使用入门
NPM使用入门 npm 就是node package manager node的包管理工具 我们通过npm install 模块 来安装模块,缩写:npm i 模块,注意,低版本的node可能需要np ...
- 开发笔记-19/10/28 -SpringBoot @Value 获取配置参数
1. 在application.properties 定义参数 role.taskEvent :参数名称 4:值 ## ---------------------任务角色--------------- ...
- python函数基础(函数的定义和调用)
函数的定义 python定义函数使用def关键字 return[表达式]语句用于退出函数,选择性的向调用方返回一个表达式,不带参数值的return语句返回none def 函数名(参数列表): 函数体 ...
- js字符实体 转义字符串
HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,> ...
- reg命令详解
reg命令是Windows提供的,它可以添加.更改和显示注册表项中的注册表子项信息和值. 1,reg add 将新的子项或项添加到注册表中 语法:reg add KeyName [/v EntryN ...
- 2017.1.16【初中部 】普及组模拟赛C组总结
2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.c ...
- Python-网络编程之粘包、UDP
目录 粘包问题 subprocess模块 struct模块 UDP协议编程 简易qq聊天室 粘包问题 什么是粘包问题呢? 在我们写 tcp socket编程的时候,tcp协议是一个流式的协议,服务端第 ...