我在我的硬盘驱动器(本地)上克隆的USB密钥上有一个repo(origin).我将"origin"移动到NAS并成功测试从这里克隆它.
我想知道我是否可以在"本地"设置中更改"origin"的URI,因此它现在将从NAS中提取,而不是从USB密钥中提取.
现在,我可以看到两个解决方案:
将所有内容推送到usb-orign,并将其再次复制到NAS(由于对来源的新提交而意味着大量的工作);
添加一个新的遥控器到"本地"并删除旧遥控器(我担心我会打破我的历史).
我想通过命令行在HTML文件上运行查找和替换.
我的命令看起来像这样:
sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html > index.html
Run Code Online (Sandbox Code Playgroud)
当我运行它并在之后查看该文件时,它是空的.它删除了我的文件的内容.
当我再次恢复文件后运行它:
sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html
Run Code Online (Sandbox Code Playgroud)
这stdout
是文件的内容,并且已执行查找和替换.
为什么会这样?
sed
如果匹配模式,我需要替换整行.例如,如果该行为"一二二四四"并且如果存在"六",则整行应替换为"故障".
我试图找到一种聪明的方法来确定传递给sed的文件是否已成功更改.
基本上,我想知道文件是否已被更改,而不必查看文件修改日期.
我需要这个的原因是因为如果sed成功替换了模式,我需要做一些额外的事情.
我目前有:
grep -q $pattern $filename
if [ $? -eq 0 ]
then
sed -i s:$pattern:$new_pattern: $filename
# DO SOME OTHER STUFF HERE
else
# DO SOME OTHER STUFF HERE
fi
Run Code Online (Sandbox Code Playgroud)
上面的代码有点贵,我希望能在这里使用一些黑客.