【发布时间】:2019-04-21 23:06:40
【问题描述】:
我必须制作一个脚本,该脚本将在当前目录和当前目录中的所有子目录中更改一个具有不同单词的字符串。我想在目录中的所有文件和子目录中的所有文件中将名称 Leo 替换为 Leonidas。
我有两个问题:
-
为什么这个脚本没有改变子目录中文件的字符串?
-
为什么这个脚本只能执行一次?当我尝试第二次运行它时,它不起作用。
#!/bin/bash for file in *; do if [[ -f $file ]] && [[ -w $file ]]; then sed -i -- 's/Leo/Leonidas/g' "$file" fi done
【问题讨论】:
-
*不会扩展目录,请尝试将*替换为$(find . -type f)之类的内容。 -
昨天问了同样的问题:stackoverflow.com/questions/53365081/…
标签: string bash shell terminal