我做了很多小单行-只是想知道是否有更好的方法-介意你,我真的不介意这种方式,只是想知道。
问题:在多个期望脚本中将set timeout whatever
替换为set timeout 10
:
mkdir .1111
for i in sssh*; do
echo $i
cat $i | sed "s:set timeout.*:set timeout 10:g" > .1111/$i
done
mv .1111/* .
rmdir .1111
如果您有改进,请发布。 我敢打赌,在perl中可以做得更好,但我不在那里;)
答案 0 :(得分:0)
一个常见的成语是这样的:
find . -type f -name "sssh*" -print0 | xargs -0 sed -i 's:set timeout.*:set timeout 10:g'
您可以根据目标文件的位置来调整find
的参数。
答案 1 :(得分:0)
在你们提供的所有find和sed示例中,我都看到了替换的过程,但是我没有看到文件的实际更改方式。我想我从未理解过sed实际上会编辑文件并将其写回吗?我总是把它和|一起使用。 ,因此必须处理临时文件等等。