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


补充:管道符

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


 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KDTree空间搜索算法学习

目录 KDTree&#xff08;K-Dimensional Tree&#xff09;原理步骤空间索引建立例子[^1]回溯搜索例子[^2] 相关包案例[^3]数据KDTree 识别轨道衔接出行轨道衔接单车骑行范围分析结果保存 KDTree&#xff08;K-Dimensional Tree&#xff09;原理 将需要匹配的 K 维空间点建立 K …

Git中单独的功能特性分支是什么含义

在Git中&#xff0c;一个"功能特性分支"&#xff08;通常简称为“特性分支”&#xff09;是指从主开发分支&#xff08;比如main或master&#xff09;独立出来的分支&#xff0c;专门用于开发一个新功能、修复一个bug&#xff0c;或者进行实验性的尝试。使用特性分支…

开源的聊天服务器tigase 7.1.3 相关文档

官方的api文档 7.1.3&#xff1a; Tigase Administration Guide github地址&#xff1a; Release 7.1.3 tigase/tigase-server GitHub 安装教程&#xff1a; Tigase手动安装过程-腾讯云开发者社区-腾讯云

Pascal Content数据集

如果您想使用Pascal Context数据集&#xff0c;请安装Detail&#xff0c;然后运行以下命令将注释转换为正确的格式。 1.安装Detail 进入项目终端 #即 这是在我自己的项目下直接进行克隆操作&#xff1a; git clone https://github.com/zhanghang1989/detail-api.git $PASCAL…

标准IO函数-将bmp图片修改为德国国旗样式

代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #include <semaphore.h…

C#修改默认参数settings文件

右击项目在设置中进行修改&#xff1a; 千万不要在这里改。 如果要在自己的项目里添加这个文件&#xff0c;首先新建个文件夹&#xff0c;然后添加.setting文件&#xff0c;然后再像上面说的那样添加属性。

unity华为sdk接入指路指南

目前比较靠谱的几个方案&#xff1a;试过几个仅供参考 温馨提示&#xff1a;最高目前可支持方案到unity2021版本以下&#xff0c;以上请联系华为官方寻求技术支持 Unity集成华为游戏服务SDK方式&#xff08;一&#xff09;&#xff1a;集成Unity官方游戏SDK&#xff1a; 华为…

Quora 首席执行官亚当·德安杰洛 (Adam D’Angelo) 谈论了 AI、聊天机器人平台 Poe,以及 OpenAI 为什么不是竞争对手

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

精酿啤酒:种类与风格的多样性探索

啤酒&#xff0c;这一古老的酒精饮品&#xff0c;随着时代的发展与技术的进步&#xff0c;已经衍生出了无数种类与风格。其中&#xff0c;精酿啤酒在近年来备受瞩目&#xff0c;以其与众不同的酿造工艺和风味&#xff0c;成为了啤酒爱好者们的新宠。Fendi club 啤酒&#xff0c…

【PCIE】基于PCIE4C的数据传输(四)——使用MSIX中断

基于PCIE4C的数据传输&#xff08;三&#xff09;——遗留中断与MSI中断 一文介绍了遗留中断与MSI中断两种中断方式的代码实现&#xff0c;本文继续基于Xilinx UltrascaleHBM VCU128开发板与linux&#xff08;RHEL8.9&#xff09;&#xff0c;介绍MSIX中断方式的代码实现。本文…

ROS机器人实用技术与常见问题解决

问题速查手册&#xff08;时实更新&#xff09;更加全面丰富的问题手册记录 1.机器人使用GPARTED挂载未分配空间 需要在图型界面下操作&#xff0c;建议使用no machine连接 安装gparted磁盘分区工具, sudo apt-get install gparted -y 启动软件 sudo gparted 点击磁盘/内存…

ILI9341显示驱动芯片的使用

ILI9341是一种常见的TFT LCD显示驱动芯片&#xff0c;它在众多的应用中都有广泛的使用。这种芯片的一个显著特点是它支持16位RGB565颜色&#xff0c;这意味着它可以显示多达65536种不同的颜色。这使得ILI9341能够提供鲜艳、生动的色彩效果&#xff0c;对于需要表现丰富色彩的应…

外网禅道配置

exportfs -avrf 修改代码&#xff0c;避免启动太慢&#xff1a;vi /opt/zbox/bin/zbox.php 启动和停止 /opt/zbox/zbox start /opt/zbox/zbox stop

【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 语音降噪技术的目的是改善语音信号的质量&#xff0c;通过减少或消除背景噪声&#xff0c;使得语音更清晰&#xff0c;便于听者理解或进一步的语音处理任务&#xff0c;如语音识别和语音通讯。在许多实际应用中&#xff0c;如…

保研面试408复习 1——操作系统、计网、计组

文章目录 1、操作系统一、操作系统的特点和功能二、中断和系统调用的区别 2、计算机组成原理一、冯诺依曼的三个要点二、MIPS&#xff08;每秒百万条指令&#xff09;三、CPU执行时间和CPI 3、计算机网络一、各个层常用协议二、网络协议实验——数据链路层a.网络速率表示b.数据…

Linux中的YUM源仓库和NFS文件共享服务

目录 1.YUM仓库服务 1.1 YUM概述 1.2 准备安装源 1.3 搭建yum本地ftp源仓库 1.4 yum在线源替换方法 1.5 yum的常用操作命令 2.NFS文件共享服务 2.1 NFS&#xff08;共享存储服务&#xff09;简介 2.2 NFS服务的实现 2.3 使用NFS发布共享资源 2.4 NSF配置 2.5 如何指…

matlab

图像配准&#xff1a; %手动选择执行图片(由于程序为分开&#xff0c;此处保存的mat文件为图MRI6的信息&#xff0c;所以请选择图MRI6) [filename,pathname]uigetfile({*.jpg;*.bmp;*.tif;*.png;*.gif,All Image Files;*.*,All Files}); image imread([pathname,filename]); …

LNMP一键安装包

LNMP一键安装包是什么? LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Alibaba/Amazon/Mint/Oracle/Rocky/Alma/Kali/UOS/银河麒麟/openEuler/Anolis OS Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQ…

基于vue.js+thymeleaf模板引擎+ajax的注册登陆简洁模板(含从零到一详细介绍)

文章目录 前言1、数据库准备2、工具类与相关基类使用2.1、工具类2.2、相关基类 3、web包目录说明4、注册功能设计&#xff08;本文核心部分&#xff09;4.1、注册页面设计4.2、注册逻辑设计 5、登陆功能设计5.1、登陆页面设计5.2、登陆逻辑设计 6、运行效果图 前言 大多数的网…

Finder Windows for Mac:双系统窗口,一键切换!

Finder Windows for Mac是一款专为Mac用户设计的实用工具&#xff0c;它模拟了Windows系统的窗口管理功能&#xff0c;让Mac用户也能享受到类似Windows的窗口操作体验。这款软件的主要功能是提供一个浮动面板&#xff0c;帮助用户随时即时访问打开的Finder窗口列表&#xff0c;…