小编Sim*_*mon的帖子

替换文本文件中的换行符和变量

我有以下文件~/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)

regex linux ubuntu awk sed

3
推荐指数
1
解决办法
137
查看次数

标签 统计

awk ×1

linux ×1

regex ×1

sed ×1

ubuntu ×1