博文

目前显示的是标签为“sed”的博文

Linux sed 命令添加多行文本 写在一行命令里

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

极简一键脚本不要在开始停那么一下

图片
众所周知, 我的 一键脚本提供了带参数的用法 , 这样可以省去安装过程中的交互, 脚本会认为你自己保证了参数的正确性. 如, bash <(curl -L https://github.com/crazypeace/xray-vless-reality/raw/main/install.sh) 4 8443 但是这样的使用方式, 在一开始的时候, 还是会暂停在这里, 让你确认运行过程中要用到的参数是否无误. 直到你按回车键后, 脚本才会继续执行. 如果你因为一些原因, 想连这个确认的步骤也加速跳过. 那么请读下去.

屏蔽 kejilion 脚本上传信息

图片
如果你不喜欢 kejilion 的脚本默认打开上传信息 打开脚本, 找到 send_stats() { 在下面一行写上 return 再保存, 就行了. 

屏蔽 kejilion 脚本同意许可协议

图片
如果你不喜欢 kejilion 的脚本要同意许可协议才能使用 打开脚本, 找到 UserLicenseAgreement() { 在下面一行写上 return 再保存, 就行了. 

解密rwkgyg-CFwarp脚本 原理与实践

图片
wget -N https://gitlab.com/rwkgyg/CFwarp/raw/main/CFwarp.sh 看第一眼, 就是 上次的加密方法 . 用上次的方法解密,  bash <(curl https://gitlab.com/crazypeace/tuic-yg-unpack/-/raw/main/unpack.sh) CFwarp.sh 发现脚本为分2部分. 前面部分是安装 bzip2, 后面部分是下载这个脚本并执行 wget -qN https://gitlab.com/rwkgyg/CFwarp/raw/main/1CFwarp.sh 那么就是说, 这个 1CFwarp.sh 才是本体. 下载了打开看一看.

sed不支持非贪婪匹配 改用perl

问题 之前   Free.vps.vc 访问GitHub资源出错 用GithubProxy代理 用sed修改脚本内容 实践: bash <(curl -L  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/v2ray_wss/raw/main/install.sh   | sed -E "$(curl -L  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/gh-proxy/raw/master/sed-E-para )" ) 发现这个处理方法并不完美。 用grep github把涉及修改的地方输出一下。 curl -L  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/v2ray_wss/raw/main/install.sh   | sed -E "$(curl -L  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/gh-proxy/raw/master/sed-E-para )" | grep github 发现,.sh 的部分, bash <(curl -L https://github.crazypeace.workers.dev/ https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh | sed -E "$(curl -L https://github.com/crazypeace/gh-proxy/raw/master/sed-E-para)" ) --version 4.45.2 只在前面加了 github proxy,后面调用 GitHub 资源的部分并没有处理。 分析 查了一下资料发现,sed只有贪婪匹配,所以改用 perl 实操 perl用来做正则替换的参数为 -pe,里面同样支持sed语...

Free.vps.vc 访问GitHub资源出错 用GithubProxy代理 用sed修改脚本内容

图片
问题 Free.vps.vc 访问GitHub资源出错 --update sed不支持非贪婪匹配 改用perl 修改后 bash <(curl -L  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/v2ray_wss/raw/main/install.sh   | perl -pe "$(curl -L  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/gh-proxy/raw/master/perl-pe-para )" ) 解决思路 用 GitHub Proxy 代理 source:  https://github.com/hunshcn/gh-proxy 要么fork一份脚本,自己修改添加gh-proxy,如下文教程 如何设置自定义gh-proxy参数使用我的warp脚本 要么就把脚本下载到本地,然后修改脚本。有手搓和sed命令替换两条路。 手搓方法 1. 自己搭 或者 使用现成的 GitHub Proxy . 以  https://github.crazypeace.workers.dev/  为例 2. 在你的 GitHub 资源 url 的前面加上 GitHub Proxy 的 url  如: bash <(curl -L https://github.com/crazypeace/v2ray_wss/raw/main/install.sh) 修改为 bash <(curl -L  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/v2ray_wss/raw/main/install.sh) 3. 如果你的资源是一个脚本,而这个脚本里面访问了GitHub资源 3.1 那么你可以先 wget 下来 wget  https://github.crazypeace.workers.dev/ https://github.com/crazypeace/v2ray_wss/raw/main/i...

sed 命令中的 / 可以用任意字符替换 特别地当处理网址相关问题时

官方说明: The  /  characters may be uniformly replaced by any other single character within any given  s  command. The  /  character (or whatever other character is used in its stead) can appear in the  regexp  or  replacement  only if it is preceded by a  \  character. 来源: https://www.gnu.org/software/sed/manual/sed.html#The-_0022s_0022-Command 如: sed -E 's#(http.*github[^/]*/)#https://github.crazypeace.workers.dev/\1#g' 和 sed -E 's/(http.*github[^/]*\/)/https:\/\/github.crazypeace.workers.dev\/\1/g' 等同。

sed -e 和 sed -E 的区别 如果讨厌在(前面加\,那么就使用 -E参数吧

图片
官方说明:   -E, -r, --regexp-extended                  use extended regular expressions in the script                  (for portability use POSIX -E). 详细解释 5.2 Basic (BRE) and extended (ERE) regular expression Basic and extended regular expressions are two variations on the syntax of the specified pattern. Basic Regular Expression (BRE) syntax is the default in  sed  (and similarly in  grep ). Use the POSIX-specified  -E  option ( -r ,  --regexp-extended ) to enable Extended Regular Expression (ERE) syntax. In GNU  sed , the only difference between basic and extended regular expressions is in the behavior of a few special characters: ‘ ? ’, ‘ + ’, parentheses, braces (‘ {} ’), and ‘ | ’. With basic (BRE) syntax, these characters do not have special meaning unless prefixed with a backslash (‘ \ ’); While with extended (ERE) syntax it is reversed: these characters ...

脚本修改Caddyfile,显示Aria2的rpc密钥

之前搭了一个GCP的VM环境,做好了快照。有需要的时候,新建一个VM实例下载,用完了就删除VM实例。 这样每次建好快照以后,都要去修改Caddyfile里的IP地址。 写了个小脚本来修改Caddyfile的IP地址,再显示一下Aria2的rpc密码,方便填写到AriaNG页面上去。 #!/usr/bin/env bash caddyfile="/etc/caddy/Caddyfile" aria2_conf="/root/.aria2/aria2.conf" read -p "输入VPS的IP地址:" vps_ip if [[ ! -e ${caddyfile} ]]; then echo -e "Caddy 配置文件不存在 !" && exit 1 fi sed -i '1 c '${vps_ip}':80 {' ${caddyfile} service caddy restart if [[ ! -e ${aria2_conf} ]]; then echo -e "Aria2 配置文件不存在 !" && exit 1 else conf_text=$(cat ${aria2_conf}|grep -v '#') aria2_passwd=$(echo -e "${conf_text}"|grep "rpc-secret="|awk -F "=" '{print $NF}') fi echo "Aria2的rpc密码: ${aria2_passwd}" 其中 sed -i ' 1 c xxxxxx ' ${caddyfile} 的意思就是把第 1 行 改写 为 xxxxxx Caddyfile可以写成这样 localhost:80 {        #第一行写什么不重要,反正会被init.sh脚本修改掉     gzip     root /usr/local/caddy/www/fi...

The Hot3 in Last 30 Days

RackNerd VPS搭Hysteria2 HY2梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存

强行重装 233boy的sing-box脚本 取消脚本报错退出的逻辑