Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 递归查找和替换_Linux_Shell_Unix - Fatal编程技术网

Linux 递归查找和替换

Linux 递归查找和替换,linux,shell,unix,Linux,Shell,Unix,我有一个文件夹,里面有很多文件夹和文件。我想查找并替换: 在“我的文件夹”之前 在:“”之后(空白) 这是我试过的(尽管不起作用) 这里的正确命令是什么?您要查找的命令有点像这样: find ./ -type f -exec sed -e "/my_folder./s/my_folder.//" {} \; 但您将得到的只是打印在屏幕上的输出,而不是写回文件中。为了完成类似的事情,在我看来,您应该有不止一行代码,但这里的关键字是“意见”。像这样的东西可能会有帮助 for file in $

我有一个文件夹,里面有很多文件夹和文件。我想查找并替换:

  • 在“我的文件夹”之前
  • 在:“”之后(空白)
这是我试过的(尽管不起作用)


这里的正确命令是什么?

您要查找的命令有点像这样:

find ./ -type f -exec sed -e "/my_folder./s/my_folder.//" {} \;
但您将得到的只是打印在屏幕上的输出,而不是写回文件中。为了完成类似的事情,在我看来,您应该有不止一行代码,但这里的关键字是“意见”。像这样的东西可能会有帮助

for file in $(find ./ -type -f)
do
  cat ${file} | sed -e "/my_folder./s/my_folder.//" > MyTempFile
  cat MyTempFile > ${file} # use this instead of 'mv' command to preserve file perms
done

希望这有帮助

确保使用ascii引号。@David542:它以哪种方式失败?您是否希望sed命令重命名文件,或更改其中的某些内容?什么是“不工作”?“不起作用”对于我们理解这个问题来说是不够的。你试的时候发生了什么?你得到了不正确的结果吗?你没有得到结果吗?如果结果不正确,是什么导致结果不正确?你在期待什么?你得到正确的结果了吗?如果是,它们是什么?不要让我们猜。cat:
sed-e”/my\u文件夹/s/my\u文件夹的无用用法。//“<$file
for file in $(find ./ -type -f)
do
  cat ${file} | sed -e "/my_folder./s/my_folder.//" > MyTempFile
  cat MyTempFile > ${file} # use this instead of 'mv' command to preserve file perms
done