gpt4 book ai didi

linux - 请详细告诉我以下脚本

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:28 26 4
gpt4 key购买 nike

我想从位于特定目录中的所有文件中删除电子邮件 "sudar.dudi@in.xyz.com"。经过大量搜索后,我使用了以下命令。

此命令的问题是,它一直在搜索所需目录以外的目录,并且由于此命令,我的其他文件已损坏。

请帮我改正:

rrcg0/utioi

(in utioi direcotry are my files and the files are with specific names like mpp.properties.JKH,mpp.properties.KJL,mpp.properties.KHF likewise)

yes n|for file in $(find . -type f)
do
sed 's/sudar.dudi@in.xyz.com//g' $file > $file.tmp
mv $file.tmp $file
done

最佳答案

知道目录就不需要find了。
当你想检查 ls 给出的条目是一个文件时,你可以使用一个测试:

mydir=rrcg0/utioi
for file in ${mydir}/*
do
if [ -f "${file}" ]; then
sed 's/sudar.dudi@in.xyz.com//g' $file > $file.tmp && mv $file.tmp $file
fi
done

当您只需要属性文件时,您可以使用${mydir}/*properties* 中的文件
我用过 &&。这确保了 mv 命令只会在重定向成功时执行。我没有使用 sed -i 选项,并不总是支持该选项。

编辑:文件名中的空格怎么办?当文件名中可能有空格时,必须更正上面的脚本:

sed 's/sudar.dudi@in.xyz.com//g' "$file" > "$file.tmp" && mv "$file.tmp" "$file"

关于linux - 请详细告诉我以下脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32065374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com