linux-文本编辑

Linux文本编辑工具 Linux文本编辑工具前言一、常用的Linux文本编辑工具二、各类工具详解1.vim2.cat3.rev 把同一行内容逆向显示4.head5.tail总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入 阅读详情

cut、sort,join、sed(查找替换)、awk

1.1 cut:
-d: 指定字段分隔符,默认是空格
-f: 指定要显示的字段
-f 1,3
-f 1-3
        例子:echo "a b c d e f" | cut -d' ' -f1 

1.2 文本排序:sort
-n:数值排序
-r: 降序
-t: 字段分隔符
-k: 以哪个字段为关键字进行排序
-u: 排序后相同的行只显示一次
-f: 排序时忽略字符大小写

1.3 文本统计:wc (word count)
-l
-w
-c
-L

1.4 sed基本用法:
        sed: Stream EDitor
   行编辑器 (全屏编辑器: vi)
      sed: 模式空间


      默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕;
       sed [options] 'AddressCommand' file ...
    -n: 静默模式,不再默认显示模式空间中的内容
    -i: 直接修改原文件
   -e SCRIPT -e SCRIPT:可以同时执行多个脚本
   -f /PATH/TO/SED_SCRIPT
sed -f /path/to/scripts  file
  -r: 表示使用扩展正则表达式

 1.5 Command:
d: 删除符合条件的行;
p: 显示符合条件的行;
a \string: 在指定的行后面追加新行,内容为string
\n:可以用于换行
i \string: 在指定的行前面添加新行,内容为string
r FILE: 将指定的文件的内容添加至符合条件的行处
w FILE: 将地址指定的范围内的行另存至指定的文件中; 
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
加修饰符
g: 全局替换
i: 忽略字符大小写
s///: s###, s@@@
\(\), \1, \2

l..e: like-->liker
 love-->lover
 
 like-->Like
 love-->Love

&: 引用模式匹配整个串

1.6   awk:
awk是一个强大的文本分析工具,
    相对于grep的查找,sed的编辑,
    awk在其对数据分析并生成报告时,显得尤为强大。
    简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。


            awk '{pattern + action}' {commands}
    其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。
   花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。
   pattern就是要表示的正则表达式,用斜杠括起来。
    

        案例:
          显示最近登录的5个帐号
             #last -n 5 | awk  '{print $1}'
            读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域
            $0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",
            所以$1表示登录用户,$3表示登录用户ip,以此类推。

           echo "a,b,c,d" | awk -F,  '{print $1}'

        如果只是显示/etc/passwd的账户

       #cat /etc/passwd |awk  -F ':'  '{print $1}'  
       root
      daemon
      bin
      sys
      这种是awk+action的示例,每行都会执行action{print $1}。
      -F指定域分隔符为':'。


如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割


#cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'
root    /bin/bash
daemon  /bin/sh
bin     /bin/sh
sys     /bin/sh
 


如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。


复制代码
cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh


awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。

搜索/etc/passwd有root关键字的所有行

#awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
这种是pattern的使用示例,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)。

搜索支持正则,例如找root开头的: awk -F: '/^root/' /etc/passwd

搜索/etc/passwd有root关键字的所有行,并显示对应的shell
# awk -F: '/root/{print $7}' /etc/passwd             
/bin/bash
 这里指定了action{print $7}

awk内置变量
awk有许多内置变量用来设置环境信息,这些变量可以被改变,下面给出了最常用的一些变量。

ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符
$0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。

统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容:
#awk  -F ':'  '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
filename:/etc/passwd,linenumber:1,columns:7,linecontent:root:x:0:0:root:/root:/bin/bash
filename:/etc/passwd,linenumber:2,columns:7,linecontent:daemon:x:1:1:daemon:/usr/sbin:/bin/sh
filename:/etc/passwd,linenumber:3,columns:7,linecontent:bin:x:2:2:bin:/bin:/bin/sh
filename:/etc/passwd,linenumber:4,columns:7,linecontent:sys:x:3:3:sys:/dev:/bin/sh

使用printf替代print,可以让代码更加简洁,易读
 awk  -F ':'  '{printf("filename:%s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd
 
print和printf
awk中同时提供了print和printf两种打印输出的函数。
其中print函数的参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。
printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。

 awk编程
 变量和赋值
除了awk的内置变量,awk还可以自定义变量。
下面统计/etc/passwd的账户人数
awk '{count++;print $0;} END{print "user count is ", count}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
......
user count is  40
count是自定义变量。之前的action{}里都是只有一个print,其实print只是一个语句,而action{}可以有多个语句,以;号隔开。
这里没有初始化count,虽然默认是0,但是妥当的做法还是初始化为0:

awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd
[start]user count is  0
root:x:0:0:root:/root:/bin/bash
...
[end]user count is  40

统计某个文件夹下的文件占用的字节数
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
[end]size is  8657198
如果以M为单位显示:
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.25889 M
注意,统计不包括文件夹的子目录。
条件语句
 awk中的条件语句是从C语言中借鉴来的,见如下声明方式:
复制代码
if (expression) {
    statement;
    statement;
    ... ...
}

if (expression) {
    statement;
} else {
    statement2;
}


if (expression) {
    statement1;
} else if (expression1) {
    statement2;
} else {
    statement3;
}
统计某个文件夹下的文件占用的字节数,过滤4096大小的文件(一般都是文件夹):
ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096){size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}' 
[end]size is  8.22339 M
循环语句
awk中的循环语句同样借鉴于C语言,支持while、do/while、for、break、continue,这些关键字的语义和C语言中的语义完全相同。
数组
  因为awk中数组的下标可以是数字和字母,数组的下标通常被称为关键字(key)。值和关键字都存储在内部的一张针对key/value应用hash的表格里。由于hash不是顺序存储,因此在显示数组内容时会发现,它们并不是按照你预料的顺序显示出来的。数组和变量一样,都是在使用时自动创建的,awk也同样会自动判断其存储的是数字还是字符串。一般而言,awk中的数组用来从记录中收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配的次数等等。
显示/etc/passwd的账户
awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
0 root
1 daemon
2 bin
3 sys
4 sync
5 games
......
这里使用for循环遍历数组
linux 引号
1、反引号:``  ,命令替换
2、单引号:''   ,字符串
3、双引号: ""  ,变量替换
管道:前一个命令的输出,作为后一个命令的输入
命令1 | 命令2 | 命令3 | ...





13、Linux 文本编辑指南 本文详细介绍了Linux系统中常用的文本编辑工具,包括交互式编辑器nano和vim,以及流编辑器sed和gawk。通过示例演示了各种编辑器的基本操作、常用命令和高级技巧,并探讨了它们在实际工作中的综合应用。文章旨在帮助用户提高Linux文本编辑的效率和准确性,适用于系统管理、配置文件修改和数据处理等场景。 阅读详情

相关推荐

全面掌握Linux文本编辑命令

ed是一个基于行的文本编辑器,它是Unix系统中最古老的文本编辑器之一,拥有非常简单的用户界面。虽然它的功能相对其他现代编辑器来说较为有限,但ed以其小巧、高效和无需图形界面操作的特性,在某些特定场景下仍然具有不可替代的作用。ed的主要特点包括:轻量级:ed占用极少的系统资源,非常适合在内存受限的环境中使用。命令行操作:所有的操作都需要通过键盘输入命令来完成,不依赖于鼠标或图形界面。流编辑:ed可以处理非常大的文件,因为它的操作是基于行的流式处理。脚本化。

weixin_31641077的博客 1263

qt 文本编辑器_使用 Java 构建你自己的文本编辑器 | Linux 中国

有时候,除你自己外,没有人能制作你所梦想的工具。以下是如何开始构建你自己的文本编辑器。• 来源:linux.cn • 作者:Seth Kenlon • 译者:郑 •(本文字数:9393,阅读时长大约:12 分钟)有很多文本编辑器。有运行在终端中、运行在 GUI 中、运行在浏览器和浏览器引擎中的。有很多是还不错,有一些则是极好的。但是有时候,毫无疑问,最令人满意的就是你自己构建的编辑器。毫无疑问:构...

weixin_42464697的博客 207

手把手教你用C#实现TwinCAT 3 ADS通讯(附完整代码示例)

本文详细解析了如何使用C#实现TwinCAT 3 ADS通讯,包括协议核心价值、开发环境配置、变量通信实践及高级应用场景。通过完整代码示例和性能优化技巧,帮助开发者高效实现工业自动化系统中的实时数据交换,特别适合倍福(Beckhoff)平台用户。

weixin_29230901的博客 117

Linux命令总结之文本编辑命令

三、Linux 文本编辑命令 1、 wc命令 命令格式: ls [选项][目录名] 常用参数: 常用范例 2、 grep命令 命令格式: ls [选项][目录名] 常用参数: 常用范例 3、 正则表达式命令 命令格式: ls [选项][目录名] 常用参数: 常用范例 4、 cut命令 命令格式: ls [选项][目录名] 常用参数: 常用范例 5、 paste命令 命令格式: ls [选...

weixin_42715287的博客 1048

LAP-D协议概述

Q.921协议由称为LAPD(链路访问协议-D通道),与HDLC的关系密切,它是在ISDN D通道上使用的数据链路协议。 注:http://www.freesoft.org/CIE/Topics/125.htm LAP-D的帧格式 标志、位填充技术和FCS校验计算与HDLC一致。 16位的地址包括C/R字段、SAPI(服务访问点标识)和TEI(端点标识)。TEI用于区分使用相同ISDN...

系统运维 1914

Paypal开发者中心获取“ClientId”和“ClientSecret”参数

正式环境设置 1、登录到 paypal开发者中心 网址:https://developer.paypal.com/developer/ 点击右上角登录按钮登录 2、左侧栏 - 我的应用程序和凭证 - 点击“创建新应用” 新注册的paypal账号,需要进行邮箱验证,验证通过后,需要等待一段时间(或重新登录),才会出现相关设置项位置 验证邮箱通过后,点击创建新应用 3、按提示填写,保存创建应用 4、点击刚创建的应用进入应用详情页 5、应用详情页获得网站开发人员所需要的“ClientId”和“Client

龚清林的博客 1万+

<Linux>文本编辑

Linux系统常用的文本编辑器,按功能分为两类:行编辑器(如ed,ex,edit)和屏幕编辑器(如vi)。 1、vi的工作方式 • 命令方式:在shell提示符后输入命令vi,进入vi编辑器,并处于vi命令方式 • 输入方式:通过输入vi的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)、取来命令(r)可以从命令方式进入输入方式。vi的一般用法

kingworr的博客 395

grafana 配置页面告警

Rate 下拉选择也可,保持默认也可。By label 选择一个比如选择filename。配置无数据或者错误数据的时候如何处理,这里选择 Normal (表示当做正常不会告警)单机 node_name 标签,选择一个主机,选好后单机 Show logs。单机 New floder,如果之前配置过,也可以选择。单机 Save contact point 保存即可。会跳出如下对话框(如果没有跳出就自己单机选择下)完成后会自动生成如下图,告警规则部分就配置好了。选择告警接收方式(这里选择企业微信 WeCon)

weixin_40548182的博客 3251

java修改linux文件

package vedio.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; /** * * 修改前 * ooo aaa * ...

weixin_30588907的博客 1103

CODESYS Softmotion(一)功能介绍

一、CODESYS SoftMotion RTE SL产品 1.1 CODESYS Runtime SL 产品家族介绍 目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 对于Windows系统,根据需求选择对应的Runtime: RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。 1.2 RTE的下载和安装 在官网http://codes

Fishfishfishfishcat 2万+

华为OD机试2025C卷 - CPU调度策略 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025C卷 CPU调度策略,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1296

linux下 java 文本_Java中如何将输入的信息写入文本中

要把信息写入文本中进行固化存储是开发中经常用到的一种方法,下面是具体的操作流程,(文中只涉及核心代码,不是完整的项目)。try{File file = new File("mnt/sdcard/newfile.txt"); //先New出一个文件来FileOutputStream fos = new FileOutputStream(file); //然后再New出一个文件输出流,String...

weixin_39908106的博客 350

一、C++反作弊对抗实战 (基础篇 —— 2.注册表注入DLL)

在Windows NT/XP操作系统中,当需要加载user32.dll的程序启动时,user32.dll会加载注册表键HLM\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_dlls下面列出的所有模块。

Koma的主页 1098

linux 文本编辑器_Linux排名前7位的最佳文本编辑器

linux 文本编辑器Text editors play a major role for Linux users. Whether it is setting up user instructions, editing configuration files or writing code scripts to run on your system, everyone has a text ed...

从零开始的教程世界 3万+

【DRAM存储器六十七】DDR5介绍--训练相关之write leveling

详述DDR5 write leveling细节

highman110的博客 284

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux 文本编辑神器

vi 和 vim 作为 Linux 系统的经典文本编辑器,虽然入门有一定门槛,但掌握后能显著提升工作效率。其核心在于理解三种工作模式的切换逻辑,再通过练习熟悉常用命令。从简单的光标移动到复杂的全局替换,vim 提供了一整套高效编辑方案,是处理系统配置、编写脚本的必备技能。记住:vim 的强大之处在于"手指不离开键盘"即可完成所有操作,坚持练习,你会逐渐体会到它的魅力!

m0_46589218的博客 1061

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Linux中常用的文本编辑器

在Linux环境中,选择合适的文本编辑器对于提高工作效率至关重要。本文将详细介绍七种广泛使用的文本编辑器,包括它们的特点、优势和适用场景,帮助用户根据自己的需求和偏好做出最佳选择。在本文中,我们详细介绍了七种在Linux系统中常用的文本编辑器:Vi/Vim、Nano、GNU Emacs、Gedit、Geany、Sublime Text以及Visual Studio Code (VSCode)。每种编辑器都有其独特的优势和适用场景,满足了从初学者到专业开发者的不同需求。

weixin_52811458的博客 8393

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

linux文本编辑命令

通过按键:i、o、O,可以进入插入模式(打字模式),进行内容编写,按esc回退到命令模式。这里主要介绍vim编辑器,vim是vi的升级版,两个基本上是同一个东西。,进入底线命令模式,回车或esc回退到命令模式(或者就退出了vim了)使用vim打开文件进入命令模式,命令模式下可以通过快捷键编辑文件内容。如果异常退出,次备份文件会存在,当你再次使用vim编辑此文件时会报错。如果你修改了文件,但是没有保存,vim会自动备份你的修改,在。如果是正常退出,此备份文件会自动消失。确认你的操作,然后手动删除此。

qq_46002559的博客 1706

从0开始学习Linux——文本编辑器

Linux 的文本编辑器是用于创建、编辑和处理文本文件的程序。它们在 Linux 操作系统中扮演着重要角色,尤其是在编程、配置系统和管理文件时。

diamond_5446的博客 2165

linux文本编辑基础

在部署项目时,我们难免会接触到服务器,而服务器绝大多数都是采用linux系统。在部署项目时,我们都是远程登录到linux服务器,我们都是通过命令行对服务器操作,liunx命令有很多。这篇文章主要介绍linux下的文本编辑。项目部署时,难免会修改阅读,配置各种各样的配置文件。linux下的文本编辑是什么样的呢? 1.vi与vim介绍 所有的Linux 系统都会内建vi 文本编辑器。Vim 具有程...

qq_42681787的博客 341

Linux文本编辑器

简述 文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice,文本模式下的编辑器有vi、vim(vi的增强版本)Emacs等。 vi和vim是我们在Linux中最常用的编辑器。vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,不是图形界面的编辑器能比的。 1、vi(vim)文本...

weixin_44521996的博客 761

Linux文本编辑

vi编辑器是Linux和Unix上最基本的文本编辑器。 vim是vi的增强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。 Vi和vim三种常见模式: 一般模式: 以vi/vim 命令打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』快捷键来处理档案内容,也可以使用『复制、贴上』快捷键来处理你的文件数据。 **编辑模式:**按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式

落辰哀的博客 2237

linux 默认文本编辑器_如何在Linux上更改默认文本编辑器

linux 默认文本编辑器On Linux, a default editor is used for text editing such as crontab -e or git commit. How to change it to the editor of my own choice? 在Linux上 ,默认编辑器用于文本编辑,例如crontab -e或git commit 。 如何将其更...

cuma2369的博客 3965

linux文本编辑器下载,Linux文本编辑器Jed

在这篇文章中,我将介绍 Jed,它是一个基于终端的编辑器,它的特点是有一个方便的下拉菜单,这让那些刚刚接触终端编辑器的用户,以及那些不喜欢记住每个功能的组合键的用户而言变得特别容易。Jed 方便的下拉菜单,让新用户可以轻松地使用终端文本编辑器。你可能听说过Emacs、Vim和Nano这些典型的文本编辑器,但Linux有大量的开源文本编辑器,我的目标是在12月份对其中的31个文本编辑器进行一次公平的...

weixin_33286064的博客 407

掌握Linux文本编辑与查找

重点掌握:要重点掌握vim编辑器三种模式的切换,并且熟记wq(保存)、q!(强制退出)、i(插入)、dd(删除)、u(撤销)等常用操作指令。练习方法:建议每天使用vim编辑1个文件,可以是笔记、代码等,通过一周左右的练习,就能熟练掌握vim的基本操作。

2401_86968005的博客 1154
上一篇: linux解压文件
下一篇: linux-用户命令
满地节操1
博客等级 码龄10年 12粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值