Linux sed 命令添加多行文本 写在一行命令里
TL;DR
sed '/要搜索的内容 / a 第 1 行\\n 第 2 行\\n 第 3 行'
1) 在 Docker 包管理器时会使用国内的源,
2) 在获取 github 资源时, 会加上 ghproxy.
脚本会根据一些条件来帮助使用者进行判断, 是否应该使用这些特殊处理.
但是, 使用者的环境千奇百怪, 脚本的判断并不一定是最优的处理. 那么群里就会冒一条消息. 唉呀, 脚本卡住啦, 脚本出错啦, 求求大神快来解救我呀.
如果我们不想等"大神"来救, 那么我们可以自己决定是否要做这些特殊处理.
我们要在文本中找到
quanju_canshu() {
然后在下面添加 3 行
zhushi=0gh_proxy="https://gh.kejilion.pro/"return
当然了, 根据你的需求, 这 2 个参数的值是可以修改的. 比如, zhushi=1, 或者 gh_proxy=""
到此为止, 和以前都差不多, 写一篇文出来太水了.
要用 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' )
评论
发表评论