【Linux】文件内容相关的命令,补充:管道符

news2024/10/5 16:31:23

1、查看文件内容 

(1-1)查看文件内容:cat,tac,head,tail
查看文件内容cat 文件名
查看文件内容并显示行号cat -n 文件名
倒着查看文件内容(从最后一行开始)tac 文件名
查看文件前10行内容head 文件名
查看文件前num行内容head -n num 文件名
查看文件最后10行内容tail 文件名
查看文件最后num行内容tail -n num 文件名

(1-2)查看文件内容并显示行号:cat,nl

cat -n 默认空行也有行号。nl 默认空行没有行号。

查看文件内容,显示行号(空行也有行号)cat -n 文件名nl -b a 文件名
查看文件内容,显示行号(空行没有行号)cat -b 文件名nl 文件名

查看文件内容,显示行号(行号等宽):nl -b a -n rz 文件名

查看文件内容,显示行号(行号指定宽度):nl -b a -n rz -w 指定宽度 文件名

注:空行也显示行号。若空行不显示行号,则去掉 -b a 即可。

(1-3)翻页查看文件内容:more,less

more:

  • 只能向下翻页。向下一行(Enter键),向下一页(空格键)。
  • 退出:(快捷键)Ctrl + C 或者 q
more命令的常用选项说明
-num一次显示num行
+num从第num行开始显示

 

less:

  • 向上翻页:向上一行(向上键),向上半页(Shift+PgUp 或者 u),向上一页(PgUp 或者 b)。
  • 向下翻页:向下一行(Enter键 或者 向下键),向下半页(Shift+PgDn 或者d),向下一页(PgDn 或者 空格键)。
  • 退出:q
less命令的常用选项说明
-N显示行号
-m显示百分比
-e文件结束,自动离开

(1-4)监视文件末尾内容变动:tail

当文件末尾在不断追加内容,若想要监视文件末尾内容的变动并实时显示变动内容,则可以使用tail -f 。

监视文件末尾内容变动:tail -f 文件名

停止监视(快捷键):Ctrl + C

2、统计、排序、去重

(2-1)统计:wc(word count)
统计文件内容信息(行数 单词数 字节数)wc 文件名
统计文件内容有多少行(lines)wc -l 文件名
统计文件内容有多少单词数(字符串words)wc -w 文件名
统计文件内容有多少字节数(字符chars)wc -c 文件名

(2-2)排序:sort 

默认第一列字符根据ASCII码的次序排序。

sort命令的常用选项说明
-c判断是否已排过序
-r倒着排序
-f忽略大小写
-n按数字大小排序
-t指定分隔符(默认空格分隔),一般与-k一起用。
-k指定需要排序的列。分隔符不是空格时,与-t一起用。
-o将排序后的内容输出到指定文件
-u去重

(2-3)去重:uniq
去重(整行相同且连续才去重)uniq 文件名
去重,并统计重复次数uniq -c 文件名

注意:uniq只能去重连续的相同行数据,若非连续,则不会去重。可先排序再去重。

管道符:"|"。前面命令的结果给后面的命令使用。 

3、过滤文件内容

(3-1)grep:按行过滤
grep命令的常用选项说明(默认模糊匹配)
-w精确匹配
-n显示行号
-i忽略大小写

-c

统计行数
-v取反
-o只显示匹配结果
-An匹配结果中也显示最后一条的下面n行
-Bn匹配结果中也显示第一条的上面n行
-Cn匹配结果中也显示第一条的上面n行和最后一条的下面n行
-E正则表达式(普通)
-P正则表达式(Perl)
-r从目录中递归过滤所有指定文件中匹配的行

 (3-2)sed:按行过滤,可删除或替换
sed命令的常用选项说明
-n只显示结果
-i修改原文件
sed命令涉及的动作字符格式备注
打印p'/匹配的内容/p'
打印整行p'起始行号,结束行号p'
删除匹配内容所在的行d'/匹配的内容/d'

删除整行d'行号d'$为最后一行
删除多行d'起始行号,结束行号d'
替换s's/旧值/新值/' 

's/旧值/新值/gI' 。

g表示全局替换,

I(大写字母I)表示忽略大小写

整行替换c'起始行号,结束行号c 新内容'
当前下方插入一行a'行号a  插入的内容'若多行,行末用"\"
当前上方插入一行i'行号i  插入的内容'若多行,行末用"\"
对查找的内容再执行命令操作{...}'/匹配的内容/{再执行的命令操作}'

注意:p 打印,默认输出所有内容,若只输出匹配到的行数据,使用-n。

d 删除、s 替换、c 整行替换、a 后面增行、i 前面增行,默认不修改原文件。若修改原文件,使用-i。

修改原文件需慎重,最好先备份一份。可以使用输出重定向,输出到指定文件中。

(3-3)awk:按列过滤
  • 查看某列:awk  '{print $列号}'  文件名
  • 查看多列:awk  '{print $列号1, $列号2}'  文件名
  • 查看某行:awk  'NR==行号'  文件名
  • 查看多行:(举例)awk  'NR>=行号1 &&  NR<=行号2'  文件名
  • 查看含指定内容的行:awk  '/匹配的内容/'  文件名
  • 嵌套过滤:(举例)awk  'NR==行号/匹配的内容/{print $列号}'  文件名

注意:默认以空格为分隔符。可用"-F"指定分隔符。

过滤多列时,若多列之间有","则默认多列之间输出空格,可指定其他输出分割符。

  • 可使用OFS内置变量指定输出分隔符,例如:OFS=' * ',即awk  '{print $列号1, $列号2}'  OFS=' * '  文件名。
  • 也可不使用","而用双引号指定输出分隔,例如:" * ",即awk  '{print $列号1" * "$列号2}'  文件名。

4、输入输出重定向

一般从键盘输入,输出到显示屏。

  • 输出重定向:输出到文件中。符号:">"(从文件开头写入),">>"(追加到文件末尾)。
  • 输入重定向:从文件获取输入。符号:"<"(从文件读取),"<<"(重定向到交互式shell脚本或程序)。

(4-1)输出重定向

注意:0:标准输入(STDIN),1:标准输出(STDOUT),2:标准错误输出(STDERR)。

1>之间不能有空格,2>之间也不能有空格。

直接输出重定向到文件,则可以清空文件内容。

(4-2)输入重定向

输入重定向获取的数据,可以输出重定向到指定文件中。

5、编辑文件内容:vi

注意:若屏幕最下方左侧显示"--INSERT--",则表示处于输入模式(也称编辑模式),可编辑文件内容。

若想要使用快捷键或命令行操作,则按ESC键退出输入模式,回到命令模式下操作。

命令行操作即输入 ":命令" ,按回车执行命令。输入的命令将显示在屏幕最下方左侧。

(1)先用vi打开文件:vi 文件名

若文件不存在,则创建新文件。打开文件后,则进入命令模式。命令模式下,不能输入内容,可以使用快捷键或命令行操作。

# vi打开文件时,光标可直接跳到指定行首
vi 文件名 +行号

命令模式下,常用快捷键或命令行操作: 

u复原前一个动作(即撤销)
Ctrl + r重做上一个动作(即恢复)
:set nu显示行号(:set number)
:set nonu取消行号
翻页、光标跳转位置
常用快捷键或命令行操作说明
左下上右键 或者 hjkl左下上右移动光标
Ctrl + f下翻一页
Ctrl + d下翻半页
Ctrl + b上翻一页
Ctrl + u上翻半页
gg跳转到文件开头(第一行)
G跳转到文件末尾(最后一行)
8gg 或者 8G 或者 :5跳转到第8行
0跳转到行首
^跳转到行首第一个字符(跳过行首的空格)
$跳转到行尾
删除、复制、粘贴
常用快捷键或命令行操作说明
dd剪切/删除当前行
ndd删除当前行及下方共n行
d1G删除当前行到第一行所有数据
dG删除当前行到最后一行所有数据
d0(数字0)删除当前字符到行首的数据
d$删除当前字符到行末的数据
dw删除一个单词
x删除一个字符
nx删除n个字符
yy复制当前行
nyy复制当前行及下方共n行
y1G复制当前行到第一行所有数据
yG复制当前行到最后一行所有数据
y0(数字0)复制当前字符到行首的数据
y$复制当前字符到行末的数据
p(小写字母)粘贴到当前行的下方
P(大写字母)粘贴到当前行的上方
查找、替换
常用快捷键或命令行操作说明
/查找的内容查找(从光标开始往下查找)
?查找的内容查找(从光标开始往上查找)
n查找到一个,按n继续往上/下查找下一个
N查找到一个,按N反方向往上/下查找下一个
:起始行号,结束行号s/旧值/新值/gc

在某区域替换内容。1,$ 或者% 即第一行到最后一行。

c 显示提示信息供用户确认。

(2)进入输入模式

处于命令模式下,可按 i / a / o 进入输入模式,开始编辑文件内容。

i在光标所在位置,开始输入
a光标向后移动一位,开始输入
o光标下方新插入一行,从新行开始输入

编辑过程中,可以按ESC键退出输入模式,回到命令模式。命令模式下,可使用快捷键或命令行操作。

 

(3)编辑完,退出

先按ESC键退出输入模式,回到命令模式下。再输入":命令",按回车执行命令。

常用命令说明
:w保存文件
:q退出
:wq保存,并退出
:q!不保存,并退出

注意:若vi打开文件编辑时,突然中断退出,则重新vi打开,都会提示如下:

原因:因为vi打开文件时会生成相对应的临时隐藏文件".文件名.swp",突然中断,临时文件还在,再次vi打开就会提示已经有这个临时文件了。

解决办法:第一步:恢复正在编辑时突然中断的文件:vi -r 文件名

第二步:删除vi生成的临时隐藏文件".文件名.swp"。

后话:Linux内置的文本编辑器 vi 功能已经很强大。而vim是从vi发展出来的,被广泛使用,可以不同颜色加亮代码。若要使用vim,需安装。


补充:管道符

管道符:"|"。前面命令的标准输出会作为后面命令的标准输入。简单的说,就是前面命令的结果给后面的命令使用。 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1649652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国3254座水库集水区特征(地形、土壤、地质、土地利用、气候、人为活动等)

中国3254座水库集水区特征数据集 中国3254座水库集水区特征&#xff08;地形、土壤、地质、土地利用、气候、人为活动等&#xff09;数据集 数据介绍 中国3254个水库共提供512个属性。这些属性是在水库上游集水区提供的&#xff0c;包含: 1&#xff09;两种类型的水库上游集水…

linux或ubuntu环境下需要自行安装vivado USB Program下载程序驱动

如果在linux或ubuntu环境下&#xff0c;不安装驱动是无法下载FPGA程序的。在linux或ubuntu环境下安装程序不要自动安装。 johnjohn-wang:~/vitis2021.2/Vivado/2021.2/data/xicom/cable_drivers/lin64/install_script/install_drivers$ sudo ./install_drivers

W801学习笔记二十一:英语背单词学习应用——上

英语背单词是比较常见的学习APP&#xff0c;参考唐诗宋词应用&#xff0c;本章做一个类似的应用。 一、单词数据清洗及格式转换 诗词数据的获取渠道很多&#xff0c;一般可以按照年级来分文件。如一到九年级&#xff0c;四六级&#xff0c;雅思等等。 1、先从网上某某地方下载…

数据结构学不会?数据结构可视化网站来了

目录 前言 图码网站 算法可视化 算法编辑器 数据结构全书 数据结构课程 总结 前言 数据结构与算法在计算机的学习中应该是许多小白最头疼的东西&#xff0c;明明听的时候那么容易&#xff0c;为什么转换成代码就那么抽象呢&#xff1f; 有没有一个网站可以数据结构与算…

Nginx从入门到精通速成

文章目录 一. **Nginx** **的简介**1.1 什么是 **nginx**1.2 正向代理1.3 反向代理1.4 **负载均衡**1.5 动静分离 二. **Nginx** **的安装**三. **Nginx** **的常用的命令**四. **Nginx** **的配置文件**五. **Nginx** **配置实例**反向代理实例**1**5.1 实现效果5.2 准备工作5…

领航法律科技,法大大多年深耕再获认可!

近日&#xff0c;“乘势破局 第八届新兴法律服务业高峰论坛”在上海隆重举行。作为国内领先的电子签厂商&#xff0c;法大大凭借在法律科技领域的多年深耕与沉淀&#xff0c;荣获“法律科技领航机构”称号。 据悉&#xff0c;新兴法律服务业高峰论坛作为国内首个聚焦“新兴法律…

Android版本依赖Version catalog

曾经我们使用config.gradle文件进行版本依赖配置&#xff0c;然后在project的build.gradle.kts中使用如下方式引入&#xff1a; apply(from "./config.gradle") 缺点&#xff1a;在project的module中引用无任何提示&#xff0c;无法跳转到指定引用 一、创建versio…

《QT实用小工具·五十九》随机图形验证码,带有一些可人的交互与动画

1、概述 源码放在文章末尾 该项目实现了可交互的动画验证码控件&#xff0c;趣味性十足&#xff1a; 字符变换动画 噪音动画 可拖动交互 项目demo演示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #ifndef CAPTCHAMOVABLELABEL_H #define CAPTCHAMOVABLELABEL…

物料厘不清?企业如何做好“物料管理”

物料包括原材料、半成品、成品、辅助用品以及生产过程中必然产生的边角余料、废料等。在制造企业中&#xff0c;各个部门的业务流程几乎都要用到物料&#xff1a; 销售和订单录入部门要通过物料确定客户定制产品的构形&#xff1b; 计划部门要根据物料来计划物料和能力的需求…

实验15 MVC

二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握MVC的用法。 三、源代码以及执行结果截图&#xff1a; inputMenu.jsp&#xff1a; <% page contentType"text/html" %> <% page pageEncoding "utf-8" %> &…

Nessus 部署实验

一、下载安装https://www.tenable.com/downloads/nessus 安装好之后&#xff0c;Nessus会自动打开浏览器&#xff0c;进入到初始化选择安装界面&#xff0c;这里我们要选择 Managed Scanner 点击继续&#xff0c;下一步选择Tenable.sc 点击继续&#xff0c;设置用户名和密码 等…

SpringBoot3项目打包和运行

六、SpringBoot3项目打包和运行 6.1 添加打包插件 在Spring Boot项目中添加spring-boot-maven-plugin插件是为了支持将项目打包成可执行的可运行jar包。如果不添加spring-boot-maven-plugin插件配置&#xff0c;使用常规的java -jar命令来运行打包后的Spring Boot项目是无法找…

FL Studio20.9水果安装及切换修改中文语言教程

前言 喜欢音乐制作的小伙伴千万不要错过这个功能强大&#xff0c;安装便捷的音乐软件哦&#xff01;如果你们已经下载好了这款软件的话&#xff0c;小编今天在这里就为大家详细讲解下如何安装FL Studio软件&#xff0c;一起来学习吧&#xff01; 注意&#xff1a; &#xff0…

硬盘惊魂!文件夹无法访问怎么办?

在数字时代&#xff0c;数据的重要性不言而喻。然而&#xff0c;有时我们会遇到一个令人头疼的问题——文件夹提示无法访问。当你急需某个文件夹中的文件时&#xff0c;却被告知无法打开&#xff0c;这种感受真是难以言表。今天&#xff0c;我们就来深入探讨这个问题&#xff0…

LeCun转发,AI让失语者重新说话!纽约大学发布全新「神经-语音」解码器 | 最新快讯

新智元报道 编辑&#xff1a;LRT 通过采集皮层电图&#xff08;ECoG&#xff09;的数据信号&#xff0c;模型可以将其转换为可解释的语音参数&#xff08;如音高&#xff0c;响度&#xff0c;共振峰频率等&#xff09;&#xff0c;并合成出既准确又自然的语音波形。 脑机接口&a…

【解决】:git clone项目报错fatal: fetch-pack: invalid index-pack output

象&#xff1a;之前一直使用gitee将个人学习和工作相关记录上传到个人gitee仓库&#xff0c;一直没出现过问题。直到有一天换电脑重新拉取代码发现出了问题&#xff0c;具体如下图&#xff1a; 原因分析&#xff1a; 经过查询发现主要原因是因为git clone的远程仓库的项目过大…

资料总结分享:SAM,bam,bed文件格式

目录 sam文件 bam文件 bed 文件 sam文件 SAM&#xff08;Sequence Alignment/Map&#xff09;文件是存储测序数据比对结果的一种常见格式。SAM文件通常用于存储DNA或RNA测序数据在参考基因组上的比对结果。 SAM文件由多行文本组成&#xff0c;每一行代表一个比对结果。SAM文…

分类规则挖掘(三)

目录 四、贝叶斯分类方法&#xff08;一&#xff09;贝叶斯定理&#xff08;二&#xff09;朴素贝叶斯分类器&#xff08;三&#xff09;朴素贝叶斯分类方法的改进 五、其它分类方法 四、贝叶斯分类方法 贝叶斯 (Bayes) 分类方法是以贝叶斯定理为基础的一系列分类算法的总称。贝…

鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

Hi3516标准系统入门&#xff08;命令行方式&#xff09; 注意&#xff1a; 从3.2版本起&#xff0c;标准系统不再针对Hi3516DV300进行适配验证&#xff0c;建议您使用RK3568进行标准系统的设备开发。 如您仍然需要使用Hi3516DV300进行标准系统相关开发操作&#xff0c;则可能会…

第十四届蓝桥杯大赛软件赛省赛(Python大学A组)

2023年蓝桥杯 省赛真题Python大学A组 试题A&#xff1a;特殊日期 试题B&#xff1a;分糖果 试题C&#xff1a;三国游戏 试题D&#xff1a;平均 试题E&#xff1a;翻转 试题F&#xff1a;子矩阵 试题G&#xff1a;阶乘的和 …