Linux sed 命令添加多行文本 写在一行命令里
TL;DR
sed '/要搜索的内容/ a 第1行\\n第2行\\n第3行'
1) 在Docker包管理器时会使用国内的源,
2) 在获取 github 资源时, 会加上 ghproxy.
脚本会根据一些条件来帮助使用者进行判断, 是否应该使用这些特殊处理.
但是, 使用者的环境千奇百怪, 脚本的判断并不一定是最优的处理. 那么群里就会冒一条消息. 唉呀, 脚本卡住啦, 脚本出错啦, 求求大神快来解救我呀.
如果我们不想等"大神"来救, 那么我们可以自己决定是否要做这些特殊处理.
思路和以前类似, 也是用sed修改文本流的内容, 再灌到bash里面去执行.
我们要在文本中找到
quanju_canshu() {
然后在下面添加3行
zhushi=0gh_proxy="https://gh.kejilion.pro/"return
当然了, 根据你的需求, 这2个参数的值是可以修改的. 比如, zhushi=1, 或者 gh_proxy=""
到此为止, 和以前都差不多, 写一篇文出来太水了.
我想写文的原因是, 如何使用sed添加多行文本, 写在一行命令里.
要用sed添加多行文本, 我找到的资料都是写成多行命令的, 我的意思是这样的:
但是, 如果我要基于 bash <(...) 的模式修改, 我想还是保持一行命令的形式, 应该怎么写呢?
又经过一些搜索和尝试, 在 sed v4.9 版本下, 我实践成功的写法是这样的
sed '/要搜索的内容/ a 第1行\\n第2行\\n第3行'
其中 /***/ 就是 搜索并定位 的功能, a 就是在下1行添加文本 的功能, \\n 实现了换行符.
回到我们的原始问题.
bash <( curl -L "https://gh.kejilion.pro/https://raw.githubusercontent.com/kejilion/sh/refs/heads/main/kejilion.sh" | sed '/quanju_canshu() {/ a zhushi=0\\ngh_proxy="https://gh.kejilion.pro/"\\nreturn' )
评论
发表评论