全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 579|回复: 7
打印 上一主题 下一主题

[Windows VPS] 如何实现跨行操作(sed awk grep ...)?搞定,谢谢tinyfish

[复制链接]
跳转到指定楼层
1#
发表于 2020-4-1 13:12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 llyang 于 2020-4-1 13:57 编辑

文件 myserver.conf 内容如下:

  1. server {
  2.     listen 80;
  3.     listen [::]:80;
  4. }
  5. server {
  6.     listen 443 ssl http2;
  7. }
  8. server {
  9.     listen 1080;
  10.     listen [::]:1080;
  11. }
复制代码


cat myserver.conf | sed -n '/^server/,/^}/p'
这样就成了全选择

我想单独选择每个段落
只选包含80区域(line 1-4),只选443区域(line 5-7),只选1080区域(line 8-11) -- server { ... }


百度下、谷歌下的“高手”,请你绕行,谢谢

推荐
发表于 2020-4-1 13:31:50 | 只看该作者
本帖最后由 tinyfish 于 2020-4-1 13:37 编辑

只会 awk 的……
cat myserver.conf | awk '$0~str{sub(".","server&");print}' RS='server' ORS='' str="443"



PS:是gawk……

点评

十分感谢,高手在民间  发表于 2020-4-1 13:57
2#
发表于 2020-4-1 13:17:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
3#
发表于 2020-4-1 13:20:59 | 只看该作者
vim可以做到单独选择段落用正则处理,具体怎么操作忘了
4#
 楼主| 发表于 2020-4-1 13:24:40 | 只看该作者
这是最好的年代 发表于 2020-4-1 13:20
vim可以做到单独选择段落用正则处理,具体怎么操作忘了

vim没研究过,即使行也没用,无法实现自动化

跨行容易,特征字符也容易
跨行+中间特征字符,我就不会了
6#
 楼主| 发表于 2020-4-1 13:33:28 | 只看该作者
本帖最后由 llyang 于 2020-4-1 13:56 编辑


awk grep都行哈,能到达效果就好。

那我修改下题目吧

有点效果,但是没有显示全部段落, 到443所在行就没了

  1. cat myserver.conf | awk '$0~str{sub(".","server&");print}' RS='server' ORS='' str="443"
复制代码


搞定,谢谢你

点评

额……  发表于 2020-4-1 13:35
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-6-6 20:32 , Processed in 0.060756 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表