我有以下文件~/hello.txt:
qwe asd qwe
bash "$HOME/byobu.sh"
bash "$HOME/byobu.sh"
# asd yxc asd
Run Code Online (Sandbox Code Playgroud)
如何替换以换行符和变量开头的字符串,以便文件将导致:
qwe asd qwe
# bash "$HOME/byobu.sh"
bash "$HOME/byobu.sh"
# asd yxc asd
Run Code Online (Sandbox Code Playgroud)
即将第二个字符串的第一次出现替换为其注释版本。尝试以下命令:
byobu_line='bash "$HOME\/byobu.sh"'
sed -i '0,/\n'"$byobu_line"'/ s/\n'"$byobu_line"'/\n# '"$byobu_line"'/' ~/hello.txt
Run Code Online (Sandbox Code Playgroud)
保持文件不变。
没有sed的解决方案也被接受。
注意:\n这里的换行符需要自己匹配和替换,因为如果我没有它第二次运行它,它会导致不需要的结果
qwe asd qwe
# # bash "$HOME/byobu.sh"
bash "$HOME/byobu.sh"
# asd yxc asd
Run Code Online (Sandbox Code Playgroud)