Bash脚本搜索和替换

时间:2014-05-19 19:49:36

标签: linux bash shell sed

我有一个不能正常工作的bash脚本,我是这种编码的新手。任何建议或帮助都会很棒。

我正尝试在PuTTy平台上使用新用户更改旧用户的电子邮件地址。但是并非所有目录都有某个文件,我认为我的IF语句可能存在问题。这是我尝试使用的脚本:

#!/bin/bash
#set -x

for dirs in *
do
  echo $dirs
  cd $dirs/
  if [ -d "Seadont"]
  then 
   sed -i 's/USER1/USER2/g'
  ls
  fi
done

我的结果不正确。

1 个答案:

答案 0 :(得分:1)

试试这个:

#!/bin/bash
#set -x

for dirs in * ;do
  echo $dirs
  if [ -d "Seadont"] ;then 
     sed -i.bak 's/USER1/USER2/g' $dirs 
   fi
done

请注意,如果“$ dirs”上有空格,则无效。如果有的话我可以提出更好的解决方案,但我需要知道当前的目录。