【发布时间】:2019-09-17 16:37:01
【问题描述】:
我有以下文件~/hello.txt:
qwe asd qwe
bash "$HOME/byobu.sh"
bash "$HOME/byobu.sh"
# asd yxc asd
如何替换以换行符和变量开头的字符串,以便文件生成:
qwe asd qwe
# bash "$HOME/byobu.sh"
bash "$HOME/byobu.sh"
# asd yxc asd
即将第二个字符串的第一次出现替换为其注释版本。 尝试以下命令:
byobu_line='bash "$HOME\/byobu.sh"'
sed -i '0,/\n'"$byobu_line"'/ s/\n'"$byobu_line"'/\n# '"$byobu_line"'/' ~/hello.txt
保持文件不变。
没有sed 的解决方案也被接受。
注意:这里的换行符\n是需要自己匹配替换的,因为如果没有它再运行它会导致不想要的结果
qwe asd qwe
# # bash "$HOME/byobu.sh"
bash "$HOME/byobu.sh"
# asd yxc asd
【问题讨论】:
-
这种事情在
awk中通常比sed更容易。
标签: regex linux ubuntu awk sed