Linux文件过滤及内容编辑处理

学习一下Linux文件过滤及内容编辑处理,暂时记录部分内容,后续补充。

纯文本编辑器vi/vim

vim是从vi发展出来的一个文本编辑器,但发现到现在已经不仅仅是一个文本编辑器了,还具有代码补全、编译等适用于编程的功能出现。vim具有三种模式,分别为命令模式(Command mode)、编辑模式(Insert mode)和底行模式(Lastline mode),其三者存在如下的转换方式。

如下图所示,使用vim命令进入命令模式后,有i、a、o三种方式进入编辑模式,其中i代表光标停留在当前光标,a代表往当前光标后移动一位光标,o代表换下行移动光标,暂时只了解这三种。

i:insert

a:append

o:

另外一个是底行模式下命令,除了wq外,还有wq!、q、q!等,其具体意思如下:

(1)wq,write and quite,保存并退出

(2)wq!!是强制的意思,代表强制保存并退出

(3)q 退出不保存

(4)q! 强制退出不保存

(5)set nu 显示行号

(6)set nonu 不显示行号

vim还有一些基本常见命令,记录如下,不区分模式。

进入行首行尾

为了方便更好的理解vim命令,使用echo命令先将部分文本写入到test.txt文件,并换行输出。

按$进入当前行尾,按0进入当前行首,具体操作体会。

文件开头结尾

按gg进入文件开头,数字+gg进入第多少行,按G进入文件尾部,如图按下G后进入到了31行。

搜索

/+搜索内容为向下搜索,继续向下搜按n,反向按N

?+搜索内容为向上搜索,继续向上搜按n,反向按N

替换

:%s/A/B/g,s代表替换,A是被替换的元素,B是替换后的元素,g是全局替换的意思,g换成数字代表只替换第数字代表的列,其中斜线可以用其他分隔符,如使用#也可以实现。

如下图使用了%s/chaolin/pengfei/g命令后变成如下结果。

:M,Ns/A/B/g,这个代表替换M~N行的内容,跟上面类似,只是指定行替换内容。

 如下图所示将1~10行将yang修改为YANG。

删除或剪切

删除或剪切单行按dd,删除多行按数字+dd。

如下图使用25gg先去到25行,然后使用25dd删除了25行后面的行。

撤销返回

按u就可以返回。

复制粘贴

单行复制按yy,p粘贴,多行复制数字+yy,p粘贴,粘贴时光标位置移动到要粘贴位置的前一行上。

如下图将光标移动到第30行按yy,然后将光标在第30行上按p,就自动粘贴到下一行上。

cat命令

cat命令就是查看文件内容命令,cat - concatenate files and print on the standard output,连接文件打印标准输出。如果想显示行号,使用参数-n。

more命令

more是可以分页查看文件内容命令,按回车往下走,按空格就是翻页走,不能回着看,按q退出。

less命令

less也是可以分页查看文件内容得命令,按回车往下走,按空格就是翻页走,可以回着看,按q退出。

head命令

输出文件的头部,默认显示10行,可以使用参数-n+数字来表示自定义行数。

tail命令

输出文件的尾部,也是默认显示10行,可以使用参数-n+数字来表示自定义行数,也可以使用参数-f显示文件尾部实时更新,即tail -f 文件名这个在MES中经常使用查看log实时变化。

如另外连接linux后,使用echo hello >>test.txt命令不断往test.txt文件尾部添加hello后,原来xshell窗口在使用tail -f test.txt命令后呈现的结果如下图。

不断append元素到文件结尾

tail -f test.txt后可以看到实时变化

tac命令

跟cat相反,倒过来显示文件内容,tac - concatenate and print files in reverse。

如下图文件头尾颠倒着显示。

rev命令

反转显示每行内容,rev - reverse lines of a file or files,如下所示。

总结

Linux命令很强大,继续学习吧。

参考博文:

(1)https://www.cnblogs.com/yangjig/p/6014198.html

(2)https://www.cnblogs.com/youngchaolin/p/10962089.html#_label5

原文地址:https://www.cnblogs.com/youngchaolin/p/11296784.html