shell find查找命令

命令格式
find 路径 选项 操作

1.在vi中使用的查找替换方法
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
%s/替换前的字符串/替换后的字符串/g, 以上替换命令只能替换大小写全匹配的,如果要忽略大小写匹配在g后面加个i即可!
/str, 只表示查找。
2.在shell中使用find结合grep进行文件的替换
find ./ -exec grep str1 ‘{}’ \; -exec sed -i.bak s/str1/str2/g ‘{}’ \;
上面命令可以在当前目录下(包括子目录)查找包含str1的文件,自动替换成str2,并且生成源文件的bak文件
3.用sed命令可以批量替换多个文件中的字符串

sed -i “s/原字符串/新字符串/g” grep 原字符串 -rl 所在目录 用的是“ 不是单引号

此处都有 执行符号,可惜不显示,
例如:我要把mahuinan替换为huinanma,执行命令:
sed -i “s/mahuinan/huinanma/g” grep mahuinan -rl /www
此处都有 执行符号,可惜不显示,
A=aabbccddeeff
echo $$A |fold -w2|grep -1 bb|tr -d ‘\n’|sed -r “s/([a-z]{2})/\1,/g” aa,bb,cc 此处不能单显示一个$,只能用2个$显示
输出的结果是 bb的上下行和cc行
echo $A |fold -w2|grep -E -1 ‘bb|ee’|tr -d ‘\n’|sed -r “s/([a-z]{2})/\1,/g”
aa,bb,cc,dd,ee,ff 结果是bb的上下各一行和ee的上下各一行,加上本身行
4.查找目录及文件:
find /(查找范围) -name ‘查找关键字’ -type d 关键字好像必须是全名,
find /(查找范围) -name 查找关键字 -print
/opt/app/dev/xi$a=find / -name xi -type d 此处都有 执行符号,可惜不显示,
/opt/app/dev/xi echo a
/opt/app/dev/xi
/opt/app/dev/xi$a=find / -name xi -type d 此处都有 执行符号,可惜不显示,
/opt/app/dev/xi echo a 结果是空

你可能感兴趣的:(shell-命令)