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

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,需安装。


补充:管道符

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


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pycharm远程同步的mapping与sync

用Pycharm进行项目远程部署的时候会遇到两个同步文件&#xff0c;一个是点击 tools—>deployment—>configration——>mapping 一个是链接虚拟环境的时候会有一个sync&#xff0c;那么这两种同步有什么区别呢&#xff1f; 区别就是&#xff0c;2包括1&#xff0c;要用…

GORM的常见命令

文章目录 一、什么是GORM&#xff1f;二、GORM连接mysql以及AutoMigrate创建表三、查询1、检索此对象是否存在于数据库&#xff08;First,Take,Last方法&#xff09;2、Find()方法检索3、根据指定字段查询 四、更新1、Save() 保存多个字段2、更新单个字段 五、删除 一、什么是G…

QT截图程序,可多屏幕截图

截图程序&#xff0c;支持多屏幕时跨屏幕截图。截图使用setMask达到镂空效果&#xff0c;截图后会有预览和保存功能。截图时按下Esc可退出。 mainwindow.ui mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> …

docker jenkins 部署springboot项目

1、创建jenkins容器 1&#xff0c;首先&#xff0c;我们需要创建一个 Jenkins 数据卷&#xff0c;用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷&#xff1a; docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷&#xff1a; docker run -dit…

搞定 TS 装饰器,让你写 Node 接口更轻松

前言 亲爱的小伙伴&#xff0c;你好&#xff01;我是 嘟老板。你是否用过 TypeScript 呢&#xff1f;对 装饰器 了解多少呢&#xff1f;有没有实践应用过呢&#xff1f;今天我们就来聊聊 装饰器 的那点事儿&#xff0c;看看它有哪些神奇的地方。 什么是装饰器 咱们先来看一段…

密码学《图解密码技术》 记录学习 第十三章

目录 第十三章 13.1 本章学习的内容 13.2 PGP 简介 13.2.1 什么是 PGP 13.2.2 关于 OpenPGP 13.2.3关于GNU Privacy Guard 13.2.4 PGP 的功能 公钥密码 数字签名 单向散列函数 证书 压缩 文本数据 大文件的拆分和拼合 13.3 生成密钥对 13.4 加密与解密 13.4.1 加密 生成…

Qt | QComboBox(组合框)

01、上节回顾 Qt 基础教程合集02、QComBox 一、QComboBox 类(下拉列表、组合框) 1、QComboBox 类是 QWidget 类的直接子类,该类实现了一个组合框 2、QComboBox 类中的属性 ①、count:const int 访问函数:int count() const; 获取组合框中的项目数量,默认情况下,对于空…

js 图片渐变

1. 点击图片&#xff0c;使其渐变为另一张图片 通过定义keyframes来创建一个淡入淡出的动画效果。当图片被点击时&#xff0c;先添加淡出动画使图片透明度从0渐变到1&#xff0c;然后在1秒后切换图片源并添加淡入动画使新图片透明度从0渐变到1&#xff0c;实现图片渐变效果。 …

光伏SRM供应商管理解决方案

供应商管理是光伏企业中重要的一环&#xff0c;通过SRM管理供应商&#xff0c;可以提高产品质量&#xff0c;降低采购成本&#xff0c;并集成供应链&#xff0c;提高核心竞争力。 一、搭建管理系统 分为供应商和商户&#xff0c;供应商需要完善基本信息、类别、等级、产品概要…

2005-2021年全国各地级市生态环境注意力/环保注意力数据(根据政府报告文本词频统计)

2005-2021年全国各地级市生态环境注意力/环保注意力数据&#xff08;根据政府报告文本词频统计&#xff09; 2005-2021年全国各地级市生态环境注意力/环保注意力数据&#xff08;根据政府报告文本词频统计&#xff09; 1、时间&#xff1a;2005-2021年 2、范围&#xff1a;2…

记一些内存取证题

生活若循规蹈矩&#xff0c;我们便随心而动 1.Suspicion 给了俩文件 python2 vol.py -f mem.vmem imageinfo 查看可疑进程 python2 vol.py -f mem.vmem --profileWinXPSP2x86 pslist 发现可疑进程TrueCrypt.exe 把这个进程提取出来。memdump -p 进程号 -D 目录 python2 vol…

Ypay源支付6.9无授权聚合免签系统可运营源码

Ypay源支付6.9无授权聚合免签系统可运营源码 效果图说明安装说明后台 部分源码领取源码下期更新预报 效果图 YPay是一款专为个人站长设计的聚合免签系统&#xff0c;YPay基于高性能的ThinkPHP 6.1.2 Layui PearAdmin架构&#xff0c;提供了实时监控和管理的功能&#xff0c;让…

GhostNetV2 Enhance Cheap Operation with Long-Range Attention 论文学习

论文地址&#xff1a;https://arxiv.org/abs/2211.12905 代码地址&#xff1a;https://github.com/huawei-noah/Efficient-AI-Backbones/tree/master/ghostnetv2_pytorch 解决了什么问题&#xff1f; 在计算机视觉领域&#xff0c;深度神经网络在诸多任务上扮演着重要角色。为…

Linux —— 信号(3)

Linux —— 信号&#xff08;3&#xff09; Core dump为什么core默认是被关闭的阻塞信号信号其他相关常见概念信号递达信号未决信号阻塞两者的区别信号的结构 信号集操作函数一个简单使用例子sigpending的使用例子 我们今天接着来了解信号&#xff1a; Core dump 大家不知道有…

大模型爱好者的福音,有了它个人电脑也可以运行大模型了

GPT4ALL是一款可以运行在个人电脑上的大模型系统&#xff0c;不需要GPU即可运行&#xff0c;目前支持mac&#xff0c;linux和windows系统。 什么是GPT4ALL&#xff1f; 不论学习任何东西&#xff0c;首先要明白它是个什么东西。 Open-source large language models that run …

3W 1.5KVDC 3KVDC 隔离宽范围输入,单、双输出 DC/DC 电源模块——TP2L-3W 系列

TP2L-3W系列是一款高性能、超小型的电源模块&#xff0c;宽范围2:1,4:1输入&#xff0c;输出有稳压和连续短路保护功能&#xff0c;隔离电压为1.5KVDC、3KVDC工作温度范围为–40℃到85℃。特别适合对输出电压的精度有严格要求的地方&#xff0c;外部遥控功能对您的设计又多一项…

【极速前进】20240423-20240428:Phi-3、fDPO、TextSquare多模态合成数据、遵循准则而不是偏好标签、混合LoRA专家

一、Phi-3技术报告 论文地址&#xff1a;https://arxiv.org/pdf/2404.14219 ​ 发布了phi-3-mini&#xff0c;一个在3.3T token上训练的3.8B模型。在学术基准和内部测试中的效果都优于Mixtral 8*7B和GPT-3.5。此外&#xff0c;还发布了7B和14B模型phi-3-small和phi-3-medium。…

Transformer详解:从放弃到入门(三)

上篇文章中我们了解了多头注意力和位置编码&#xff0c;本文我们继续了解Transformer中剩下的其他组件。 层归一化 层归一化想要解决一个问题&#xff0c;这个问题在Batch Normalization的论文中有详细的描述&#xff0c;即深层网络中内部结点在训练过程中分布的变化问题。  …

风吸式杀虫灯解析

TH-FD2S风吸式杀虫灯是一种创新且环保的害虫控制设备&#xff0c;它结合了太阳能和风力的双重优势&#xff0c;为农业生产、园林绿化以及居民生活等提供了高效且安全的害虫防治方案。 首先&#xff0c;风吸式杀虫灯的工作原理是利用害虫的趋光性&#xff0c;通过特定的光源吸引…

AI视频教程下载:用ChatGPT做SEO的终极教程

ChatGPT是由OpenAI开发的一款尖端人工智能&#xff0c;它已经彻底改变了我们进行搜索引擎优化&#xff08;SEO&#xff09;的方式。其先进的语言处理能力使其成为增强网站内容、提高搜索引擎排名和显著提升在线可见性的宝贵工具。 这个全面的课程旨在为你提供使用ChatGPT进行SE…