【Linux】使用grep在目录中查询指定的字符串,然后使用xargs sed替换指定的文本字符串

1、grep使用的命令

1.1 将当前目录下含有指定字符串的文件名输出(包括子目录下)

grep -rnl 'tl486Vgit_TCcaffe/Caffe_solverOriginal/caffe' ./

1.2 展示详情的命令:

grep -r 'tl486Vgit_TCcaffe/Caffe_solverOriginal/caffe' ./

【Linux】使用grep在目录中查询指定的字符串,然后使用xargs sed替换指定的文本字符串_第1张图片

2、替换指定的字符串

2.1 我们在1.1找到的包含指定字符串的文件名基础上利用xargs sed命令进行操作,命令如下

xargs sed -i 's/tl486\/git_TCcaffe\/caffe_solverOriginal\/caffe/scsc\/code\/densenet\/caffe-master/g'

其中

's/   xxx   /   zzz    /g'

,这是该命令核心的地方,将xxx内容替换为zzz的内容,命令以  /   符号作为分隔符,如果要替换路径(如上述命令)存在冲突可以以 \  符号作为转译符。同时也可以使用

 's#      #      #g' 

这种命令来替换分隔副,只要前后统一即可。

2.2 合并后的结果

grep -rnl 'tl486Vgit_TCcaffe/Caffe_solverOriginal/caffe' ./ | xargs sed -i 's/tl486\/git_TCcaffe\/caffe_solverOriginal\/caffe/scsc\/code\/densenet\/caffe-master/g'

2.3 在当前目录中执行  ./上述脚本其的名称.sh 就可以执行了。

你可能感兴趣的:(Limux)