查看GNU/Linux Tips的源代码
←
GNU/Linux Tips
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== Sed == 1. 关于 -n 的说明 The default operation of sed is to output every input line. The -n option suppresses the automatic output. When specifying this option, each instruction intended to produce output must contain a print command, p. Look at the following example. 2. debian 下读取指定软件包的所有信息(实质上是读取相邻两个空行之间的所有数据) sed -n '/^Package: libc6-udeb/{:next;N;//n$/!b next;p}' Packages PS: 每 N 一行,缓冲区会加入 /n<newline> ,当读入一空行时,缓冲区的最后一个字符就是 /n 3. 读取所有软件包的名字 sed -n 's/^Package: \(.*\)/\1/p' Packages PS: \1 表示保留 pattern 中第一个子模式,即匹配括号中模式的予以保留 4. 提取含有特定信息的数据块(比如获取所有 gnome 用到的包) sed '/^Package:/{:next;N;//n$/!b next;/Section: gnome/b;d}' Packages 5. sed 中使用 bash 中定义的变量 sed -n "/^Package: $file/{:next;N;//n$/! b next;p}" Packages PS: 注意 sed 的命令部分是用“”括起来的,这样可以引用 bash中定义的变量 file;另外!和 b之间 要留有空格否则bash 会报错,因为在bash中!有特殊用途。 6. 关键字提取 <source lang=bash> $ sed -n 's/.*[^a-zA-Z]\{1\}\([a-zA-Z]\+[bB]\{1\}ot\).*/\1/p' 2024-01-19-access.log.1 | sort | uniq dotbot xxBot $ sed -n 's/^\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\).*/\1/p' 2024-02-19-access.log | sort | uniq </source> <br><br>
返回到
GNU/Linux Tips
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面