linux命令,如何根据关键字查询,如何替换某个关键字,vi中如何复制
如何根据关键字查询
linux在线命令查询平台
如果是在⽂件的外⾯
grep -rl 关键字 ⽬录
例如:查/home下所有内容含有hello的⽂件。grep -rl ‘hello’ /home
r:递归⽬录与⼦⽬录查
l:只列出⽂件全名
如果是在没有打开⽂件的前提就⽤"cat ⽂件名 | grep “关键字”"
如果是⽤vi打开⽂件后,在命令⾏下输⼊“: /关键字” 按n会跳到下⼀个 , 按N会跳到上⼀个
在⽤vi打开⽂件后,怎么替换某个关键字
1. 基本替换
/str1/str2/ 替换当前⾏第⼀个str1为str2
/str1/str2/g 替换当前⾏所有str1为str2
s/str1/str2/替换第n⾏开始到最后⼀⾏中每⼀⾏的第⼀个str1为str2:n,
:n,s/str1/str2/g 替换第 n ⾏开始到最后⼀⾏中每⼀⾏所有str1为str2
(n 为数字,若 n 为 .,表⽰从当前⾏开始到最后⼀⾏)
:%s/str1/str2/(等同于 :g/str1/s//str2/) 替换每⼀⾏的第⼀个str1为str2
:%s/str1/str2/g(等同于 :g/str1/s//str2/g) 替换每⼀⾏中所有str1为str2
2. 可以使⽤ # 作为分隔符,此时中间出现的 / 不会作为分隔符
#str1/#str2/# 替换当前⾏第⼀个str1/ 为str2/
在VI的命令模式下输⼊“:set nu” 完整的是 “:set number”
多⽂件的关键字替换 ,三种⽅式
Mahuinan法:
sed -i “s/oldString/newString/g” grep oldString -rl /path/*.txt
Sumly法
执⾏命令:
perl -p -i -e “s/China/Sumly/g” /www/.htm /www/.txt
上⾯的意思是说将www⽂件夹下所有的htm和txt⽂件中的“China”都替换为“Sumly”
30T法
执⾏命令:
perl -pi -e ‘s|baidu|30T|g’ find /www -type f
上⾯的意思是说将www⽂件夹下所有⽂件,不分扩展名,所有的“baidu”都替换为“30T”
复制操作
  yy命令复制当前整⾏的内容到vi缓冲区
  yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制⼀个单词
  y$复制光标所在位置到⾏尾内容到缓存区
  y^复制光标所在位置到⾏⾸内容到缓存区
  nyy例如:5yy就是复制5⾏
  nyw例如:2yw就是复制两个单词
如果要复制第m⾏到第n⾏之间的内容,可以在末⾏模式中输⼊m,ny例如:3,5y复制第三⾏到第五⾏内容到缓存区。粘贴
p:在光标所在位置的后⾯插⼊复制的⽂本,p是paste的⾸字母。
P:在光标所在位置的前⾯插⼊复制的⽂本。
np:在光标所在位置的后⾯插⼊复制的⽂本,共复制n次。
nP:在光标所在位置的前⾯插⼊复制的⽂本,共复制n次。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。