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