Bash脚本替换文件中的信息

时间:2014-05-20 18:16:18

标签: bash sed

我创建了一个新文件,其中包含具有特定文件的所有目录的列表:

$ find . -name "bun.biscuts" > TREE.temp

这会将我需要的所有正确信息写入新的临时文件 我在使用sed编写bash脚本时无法替换TREE.temp文件中的电子邮件。

这是我到目前为止所做的:

#!/bin/bash
#set -x

echo Start!

for bun.biscuts in (TREE.temp)
do
    sed -i 's/EMAIL1/EMAIL2/g';
done

任何帮助都会很棒!

3 个答案:

答案 0 :(得分:0)

您只能使用一个sed命令:

sed -i.bak 's/EMAIL1/EMAIL2/g' TREE.temp

答案 1 :(得分:0)

gniourf_gniourf的评论是正确的;你不需要使用临时文件和循环来执行此操作。但如果您想要,您可以这样做:

while read; do
    sed -i 's/EMAIL1/EMAIL2/g' "$REPLY"
done < TREE.temp

对文件的每一行上的文件名执行sed操作。 $REPLYread每行写入的默认变量名称。您可以通过执行read var来更改变量名称 - 然后每行都将写入$var

答案 2 :(得分:0)

如果您的计算机上有节点,则可以npm install -g rexreplace然后

rexreplace 'email1' 'email2' TREE.tmp