跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何实现跨行操作(sed awk grep …)?搞定,谢谢tinyfish
未分類
2 4 月 2020

如何实现跨行操作(sed awk grep …)?搞定,谢谢tinyfish

llyang 大佬有话说 : 2020-4-1 13:12:32

如何实现跨行操作(sed awk grep …)?搞定,谢谢tinyfish

本帖最后由 llyang 于 2020-4-1 13:57 编辑

文件 myserver.conf 内容如下:

server {
    listen 80;
    listen [::]:80;
}
server {
    listen 443 ssl http2;
}
server {
    listen 1080;
    listen [::]:1080;
}

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

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

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

tinyfish 大佬有话说 : 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:17:50

好吧,那我绕行了 yc005t

这是最好的年代 大佬有话说 : 2020-4-1 13:20:59

vim可以做到单独选择段落用正则处理,具体怎么操作忘了yc022t

llyang 大佬有话说 : 2020-4-1 13:24:40

这是最好的年代 大佬有话说 : 2020-4-1 13:20
vim可以做到单独选择段落用正则处理,具体怎么操作忘了

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

跨行容易,特征字符也容易
跨行+中间特征字符,我就不会了:'(

llyang 大佬有话说 : 2020-4-1 13:33:28

本帖最后由 llyang 于 2020-4-1 13:56 编辑

tinyfish 大佬有话说 : 2020-4-1 13:31
只会 awk 的……

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

那我修改下题目吧

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

cat myserver.conf | awk ‘$0~str{sub(".","server&");print}’ RS=’server’ ORS=” str="443"

搞定,谢谢你

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具