Linux文件编辑常用命令
目录
一、grep命令——在文本中找出指定字符串
二、awk命令
awk基本格式
正则表达式模式(用斜线(//)包含起来)
关系表达式模式(通常用于匹配特定字段或变量的内容)
范围模式
特殊表达式模式
内置变量
三、Sed命令——非交互式编辑器
地址类型(元字符集)
命令(可以使用分隔符组合使用多个命令,按顺序执行)
替换标志
报错信息和退出信息
Sed使用实例
四、cut命令——数据截取
举例:
辨别空格和制表符
五、tr命令——字符转换:替换,删除
六、sort命令——排序
七、uniq命令——去除重复行
八、tee命令——双向输出
将文件复制多份
将错误信息也输出到文件
九、paste命令——合并文件
一、grep命令——在文本中找出指定字符串
排除文件内的空行:grep -v '^$' 文件名,同理,如果想排除注释行只需把‘$’换成‘#’即可。
二、awk命令
awk基本格式
awk [选项] ‘脚本命令’ 文件名
常用选项: -F:指定分隔符,默认以空格或tab为分隔符;
-f:从脚本文件中读取awk命令;
-v:赋值一个用户定义的变量,如-v shyn=shenyanan;
正则表达式模式(用斜线(//)包含起来)
1. 显示111文件中包含“0.1”的每条记录:
awk ‘/0.1/ {print $0} ’ 111
2. 显示111文件中包含“0.1”的每条记录的第一和第二字段:
awk ‘/0.1/ {print $1,$2}’ 111
3. 显示111文件中以数字开头的每条记录的第一列字段
awk ‘/^0-9/ {print $1}’ 111
每条记录中的字段由$后跟字段号(以1开头)引用:整个记录可以用$0引用;第一个字段用$1表示;第二个字段用$2表示;依此类推,最后一个字段也可以用特殊变量$NF引用。
关系表达式模式(通常用于匹配特定字段或变量的内容)
常用的关系运算符有: ~:包含 !~:不包含
>:大于 <:小于
>=:大于等于 <=:小于等于
==:等于 !=:不等于
1. 显示111文件中第二字段中包含“aa”字符的每条记录(反之可以使用!~
awk ‘$2 ~ /aa/ {print $0}’ 111
2. 显示111文件中第4字段“大于等于30”的记录
awk ‘$4 >= 30 {print $0}’ 111
范围模式
范围模式由逗号分隔的两组字符组成,从与第一个字符串匹配的记录开始,直到与第二个字符串的记录匹配为止的所有记录。
1. 显示111文件从“bin”到“test”在内的记录
awk ‘/bin/,/test/ {print $}’ 111
2. 显示111文件第四字段等于31到第四字段等于34内的记录
awk ‘$4 == 31 , $4 == 34 {print $0}’ 111
特殊表达式模式
内置变量
三、Sed命令——非交互式编辑器
linux命令总结sed命令详解 - 琴酒网络 - 博客园 (cnblogs.com)https://www.cnblogs.com/ginvip/p/6376049.html
sed 选项 ‘地址类型与命令/查找字符串/替换字符串/标志’ 文件或目录
选项:-e:该选项会将其后跟的脚本命令添加到已有的命令中。
-f:该选项会将其后文件中的脚本命令添加到已有的命令中。
-i:直接修改文件内容不,在屏幕上输出,可以指定后缀名生成备份文件,如-i.bak。
-n:安静模式,屏蔽默认输出(全部文本),只有经过sed特殊处理的那一行才会被列出来。
地址类型(元字符集)
如果没有指定地址,sed会处理输入的所有的行。
first~step:first 指起始匹配行, step 指步长,例如: sed -n 2~5p 含义:从第二行开始匹配,隔 5 行匹配一次,即 2,7,12.......。
命令(可以使用分隔符组合使用多个命令,按顺序执行)
替换标志
sed -i “s/旧数据/新数据/g” 文件或目录
g:进行全局替换,而不是仅替换第一次出现的位置
p:打印行
w:指定输出文件名,将替换后的结果写到文件。
x:互换模板块中的文本和缓冲区中的文本
y:把一个字符翻译为另外的字符(但是不用于正则表达式)
报错信息和退出信息
遇到语法错误时, sed 会向标准错误输出发送一条相当简单的报错信息。但是,如果 sed判断不出错在何处,它会“断章取义”,给出令人迷惑的报错信息。如果没有语法错误, sed将会返回给 shell 一个退出状态,状态为 0 代表成功,为非 0 整数代表失败。
Sed使用实例
四、cut命令——数据截取
cut命令用于显示行中指定部分,以每一行为一个处理对象。
-b:以字节为单位进行分隔,并且支持“3-5”这样的写法,多个定位数字之间可以以逗号分隔。“-b -3”表示从开头到第三个字节;“-b 3-”表示从第三字节到结尾。
-c:以字符为单位进行分隔。
-d:自定义分隔符,默认为制表符(Tab)
-f:指定显示区域,与-d一起使用。如“cut -d : -f 1”以冒号为分隔符提取第一列内容。它也支持多个定位数字。
-n:取消分隔多字节字符。仅和-b选项一起使用。三个字节组成一个汉字,-n选项用于告诉cut命令不要将多个字节符拆开,而是合并在一起显示。
举例:
[root@TL-16-39-84 tmp]# cat 1.txt
李老头 123
张老头 321
邓老头 231
[root@TL-16-39-84 tmp]# cut -b 3 1.txt [root@TL-16-39-84 tmp]# cut -c 3 1.txt //-c会以字符为单位来提取内容,而-b只会傻傻的以字节(8位二进制位)来计算
头
头
头
[root@TL-16-39-84 tmp]# cut -nb 3 1.txt
头
头
头
[root@TL-16-39-84 tmp]# cut -bn 3 1.txt
cut: invalid byte, character or field list
Try 'cut --help' for more information.
[root@TL-16-39-84 tmp]# cut -d ' ' -f 1 1.txt //-d指定分隔符为空格,-f指定显示域
李老头
张老头
邓老头
辨别空格和制表符
当要检索的文件内容较多,较难分辨是制表符(Tab)还是空格时,可以使用此方法辨别:
#下面文件内容中有较长空白,空白处是Tab还是空格单看是看不出来的。
[root@TL-16-39-84 tmp]# cat 2.txt
The harder
The more fortunate !#使用sed命令,如果是tab会显示为\t符号,若是空格则保持不变。
[root@TL-16-39-84 tmp]# sed -n l 2.txt //-n后面为字母L的小写
The harder$
The more \tfortunate\t!$
cut只允许指定一个间隔符,不能设置多个空格,所以不善于处理“多空格”情况。也可以使用tr命令“tr -s ' '”去重连续空格后,再使用cut命令过滤。
五、tr命令——字符转换:替换,删除
tr可以看做是sed的简化变体,可以用来替换字符,删除字符,也可以用它来去重。
tr [选项] ... [第一字符集] [第二字符集]
-d:删除字符集1中的所有输入字符。
-s:删除所有重复出现字符序列,只保留第一个;即重复出现的字符串压缩为一个字符串。
六、sort命令——排序
sort命令用于将文本文件内容加以排序,个针对文件内容,以行尾单位来排序。
-u:去除重复行。
-r:按降序排列,默认为升序排列。
-o:将排序后的内容输入到指定文件,类似于重定向>。
-n:以数字排列,默认是按字符串排序。
-t:指定分隔符。
-k:指定查看第几列。
七、uniq命令——去除重复行
uniq命令用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用。
-c:去重并在输出行前面加上每行重复出现的次数。
-i:忽略大小写。
-d:只显示重复行。
-u:只显示不重复的行。
八、tee命令——双向输出
tee工具从标准输入读取并写入标准输出和文件,即:双向覆盖重定向<屏幕输出|文本输出>。可以重复展示输入内容;可将文件同时复制多份。
-a:追歼重定向,而非覆盖。
将文件复制多份
#将文件复制多份
[root@TL-16-39-84 tmp]# cat 1.txt |tee 3.txt 4.txt
李老头 123
张老头 321
邓老头 231
[root@TL-16-39-84 tmp]# ll
total 45700
-rw-r----- 1 root root 42 Dec 3 14:36 1.txt
-rw-r----- 1 root root 42 Dec 3 16:11 3.txt
-rw-r----- 1 root root 42 Dec 3 16:11 4.txt
将错误信息也输出到文件
tee命令默认只把标准输入的普通信息输出到文件,错误信息丢弃,通过如下方式可以将错误信息也同步输入到文件。
[root@TL-16-39-84 tmp]# ls 111 |tee 3.txt
ls: cannot access 111: No such file or directory
[root@TL-16-39-84 tmp]# cat 3.txt
[root@TL-16-39-84 tmp]# [root@TL-16-39-84 tmp]# ls 111
ls: cannot access 111: No such file or directory
[root@TL-16-39-84 tmp]# ls 111 2>&1 |tee 3.txt
ls: cannot access 111: No such file or directory
[root@TL-16-39-84 tmp]# cat 3.txt
ls: cannot access 111: No such file or directory
九、paste命令——合并文件
paste命令会把多个文件以列对列的方式输出到屏幕,不会改动源文件。
paste [选项] 文件一 文件二 ....
-d:指定分隔符,默认以Tab分隔,只支持一个字符;若指定字符串只调用第一个字符。
-s:将每个文件中的所有内容按照一行输出,行与行以Tab分隔。
[root@TL-16-39-84 tmp]# cat 1.txt
111
2222
3[root@TL-16-39-84 tmp]# cat 2.txt
111
2222
3[root@TL-16-39-84 tmp]# paste 1.txt 2.txt
111 111
2222 2222
3 3
[root@TL-16-39-84 tmp]# paste -d : 1.txt 2.txt
111:111
2222:2222
3:3
[root@TL-16-39-84 tmp]# paste -d all 1.txt 2.txt
111a111
2222a2222
3a3
Linux文件编辑常用命令相关推荐
- linux中剪切文件命令,Linux文件处理常用命令操作技巧
我是Linux初学者,做个笔记,以下是Linux几个常用文件处理命令: 命令提示符 [root@localhost~]# 其中: root 表示当前登 ...
- Linux文件系统管理-常用命令df\du\fsck\dumpe2fs
一.分区 1234只能给主分区用,所有逻辑是从5开始的. du看到的就是跟分区下所有文件的大小. df是除了文件的大小还要包括系统和进程因为这个文件所占用的大小. 看剩余空间还是用 df 更准确 ...
- Linux文件系统(文件系统类型、设备文件、常用命令、U盘与光盘挂载)
Linux文件系统(文件系统类型.设备文件.常用命令.U盘与光盘挂载) 本篇文章是Linux文件系统整块集合,包含了Linux文件系统介绍.设备文件介绍.常用文件系统命令(查看.修复与配置).挂载 ...
- linux文本处理常用命令
linux文本处理常用命令 linux文本处理命令:grep.sed.printf.awk 1.grep grep的作用是按行查找字符,输出包含字符的行. #从文件查询 grep 'hello' fi ...
- Linux系统的常用命令的使用
常用的命令使用方法: 1.echo echo - display a line of text 经过man手册帮助后获得更精准的命令操作方法 将字符串输出到显示设备上 常用选项: -n:不换行 ,如图 ...
- Linux学习之CentOS(二)--初识linux的一些常用命令
Linux学习之CentOS(二)--初识linux的一些常用命令 在VM上安装完了CentOS6.4以后,看着linux系统成功跑起来,心里小激动了一把......但是前方学习的道路还很遥远... ...
- Linux基本的常用命令
Linux基本的常用命令 目录管理: 关于目录的一些命令演示 # cd为切换目录命令 [root@iZ2zedtw714kk6kmn4p41qZ /]# cd /home # ./表示当前目录 [ro ...
- Linux系统概述及常用命令
系统概述 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统. Linus Torvalds ,Linux之父,他根据Minix系统的代码,参照UNIX系统的设计,写出了 ...
- linux下载安装的命令,linux安装和常用命令
linux安装和常用命令 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 Linux安装和常用命令常用命令:文件管理:1,cat:把 ...
- suse linux服务器的常用命令
suse linux服务器的常用命令 1,让进程gate_way在后台运行: nohup ./gate_way & 2,查看某一进程的ID: ps -ef | grep gate_way 3 ...
最新文章
- 中国乙二醇型汽车防冻液市场运营能力分析与投资战略规划研究报告2022-2028年版
- 程序 峰谷值 提取_ABAQUS:Python后处理—用excel提取位移、体积、应变等变化(一)...
- verilog秒表计时器
- 小伙C++代码实现短信表白,软萌甜炸,送给你最喜欢的人!你值得拥有
- MongoDB 谨防索引seek的效率问题【华为云技术分享】
- (39)Verilog HDL参数:localparam
- 浅析MongoDB用户管理
- ntohs, ntohl, htons,htonl的比较
- 2017_9_20 生活记录
- Radius认证协议(八)报文属性
- 阿里巴巴高级技术专家:如何成为优秀的技术主管(下篇)
- 美国佛罗里达州立大学刘毅老师招收机器学习方向全奖博士生
- 三角函数计算,Cordic 算法入门
- hdu5294Tricks Device【最短路+网络流】
- 压降不同的二极管并联
- 为什么那么多人中途都放弃了
- ‘\t‘和“\t“的区别及作用
- create方法 eslint关闭_react create-react-app使用less 及关闭eslint
- HCIP-DATACOM H12-831(1-20)
- 什么是RTK?RTK的原理是什么?可以应用在哪些领域
热门文章
- 软件设计师考试详细介绍(最全)
- python艺术分形数_Python分形盒计数-分形维数
- 中兴配置dhcp服务器,中兴ZXR10 5928三层交换机DHCP配制步骤
- fw300r 虚拟服务器,迅捷FW300R无线宽带路由器怎么开启UPnP
- Power BI——数据建模案例分析
- unity 控制人物模型移动
- html mint ui,移动端UI库对比 vant mint-ui
- 极域课堂管理系统软件V6.0 2016 豪华版
- Xilinx FPGA 编程技巧之常用时序约束详解
- C语言 编写加密程序,将用户输入的一个英文句子加密为加密字符串,然后输出加密字符串。