如何用Linux处理文件
今天上实验课,保存实验结果,但是由于粗心把同样的数据在一个txt文档中保存了两次,造成数据的冗余。由于数据太大,在windows中用鼠标拖动选取删除太慢,就想到了可能用linux的vim会有更方便的方法。就从网上搜罗一下,用自己虚拟机中的Linux来试试。一般模式: 光标移动。这里相比于word来讲解vi的功能。用键盘上的上下左右键可以实现光标的移动,也可以用hjkl代替。也可以使用组合键实现多次移动。如用30h,表示向左移动30位。要实现光标的比较大的移动时,可以用Ctrl+f(移向下一页相当于word中的Page Down),Ctrl+b(移向上一页,相当于word中的Page Up),Ctrl+d(向下移动半页),Ctrl+u(向上移动半页),后两个命令是word不具备的。$相当于word中的End,移到行的字符末尾,移到行首则是数字0,注意不是小键盘的0。其他一些word没有的功能有:+移到非空格的下一行,-移到非空格的上一行,G移到文档的最后一行,H移到屏幕的第一行,M移到屏幕的中间行,L移到屏幕的最后一行,nG移动到文档的第n行,n<space>移到后面第n个字符处,gg移到文档的第一行,相当于1G,n<Enter>向下移动n行。 搜寻与取代命令。用/word表示向光标所在位置以下寻找字符串word,?word则表示向光标所在位置以上寻找字符串word。n或者N表示在找到的这些字符串之间切换,读者可以自己试验一下,动手才能理解深入啊。:n1,n2s/word1/word2/g表示寻找n1行与n2行之间的字符串word1,并用word2替换,这个是非常实用的命令,n1,$s/word1/word2/g表示寻找n1行与最后一行之间的字符串word1,并用word2替换,n1,$s/word1/word2/gc表示寻找n1行与最后一行之间的字符串word1,并用word2替换之前出现确认的对话框。 删除与复制命令。dd表示删除光标所在这一行,ndd表示删除光标所在行以及以下n行,d$表示删除光标所在行到末尾字符的字符,d0删除光标所在行到行首的字符,dG删除光标所在行到最后行的所有数据,d1G删除光标所在行到第一行的数据。删除单一的字符则只需用到x和X即可,用法分别与Backspace和Del相同,还可以与数字组合使用,格式为nx或者nX。yy复制,用法与dd相同。复制了之后当然是粘贴了,用p或者P分别表示粘贴在光标坐在位置的下一行或者上一行,貌似没有粘贴到光标所在位置啊^-^。小数点表示重复上一次动作,这样快捷方式也是可以经常用到的。 编辑模式: i和I进入编辑模式,其中i表示从光标所在位置处编辑,I表示从光标所在行的非空字符行首开始编辑,Esc推出编辑状态。:w把编辑的文档保存在硬盘中,相当于windows中的保存:w!表示强制写入文档,:q退出vim,:q!强制退出但是不保存文档,可见!经常表示强制的意思。:wq保存后退出,:e!文档还原到最原始的状态。:w [filename]相当于另存为,:n1,n2 w [filename]将n1到n2行的内容另存为。恩,基本就是这些了,只记这些命令还是不行的,要在实战中操作才会把知识变成自己的啊。