linux 截日志

日常运维需要查看日志,但日志文件一是拉取文件过大,二是查看不易,所以基于此,需要截取日志

截取日志命令:

 sed -n '/2022-06-02 21:/,/2022-06-03 07:/p' s.log >> broker_88.log
  • /2022-06-02 21:/,/2022-06-03 07:/p :指截取从2022-06-02 21至2022-06-03 07日志
  • s.log:指源文件,即需要截取日志所在的文件
  • broker_88.log:指截取日志落地的日志文件
### Linux `cut` 命令功能与用法 #### 什么是 `cut` 命令? `cut` 是一个强大的文本处理工具,在 Linux 和 Unix 系统中广泛使用。它的主要作用是从文件或标准输入中提取指定的列或字段,适用于多种场景,比如格式化数据、解析日志文件等[^2]。 --- #### 基本语法 以下是 `cut` 的基本语法结构: ```bash cut OPTION... [FILE]... ``` 其中常用的选项包括但不限于以下几种: | 参数 | 描述 | |------------|----------------------------------------------------------------------| | `-b list` | 按字节位置提取内容 (list 可以为单个数字或多组范围) | | `-c list` | 按字符位置提取内容 | | `-f list` | 按字段提取内容 | | `-d delim` | 自定义字段分隔符,默认为制表符 (`\t`) | | `--complement` | 输出除选定部分之外的内容 | --- #### 示例详解 ##### 示例 1: 提取特定字段 假设有一个逗号分隔的 CSV 文件 `data.csv`,其内容如下: ``` name,age,city Alice,30,New York Bob,25,San Francisco Charlie,35,Los Angeles ``` 如果要提取第二列(年龄),可以运行以下命令: ```bash cut -d',' -f2 data.csv ``` 这会输出: ``` age 30 25 35 ``` 此操作指定了自定义分隔符 `,` 并选择了第 2 列作为目标字段[^1]。 --- ##### 示例 2: 按字符位置提取 对于 `/etc/passwd` 文件中的每一行,可以通过按字符位置提取部分内容。例如,仅保留前三个字符: ```bash cut -c1-3 /etc/passwd ``` 该命令将返回每行的前三位字符[^3]。 --- ##### 示例 3: 使用 `--complement` 当需要排除某些字段时,可结合 `--complement` 参数实现反向选择。继续以上述 CSV 文件为例,若想移除第三列,则执行: ```bash cut -d',' --complement -f3 data.csv ``` 最终结果将是除了城市外的所有信息。 --- ##### 示例 4: 忽略没有分隔符的行 默认情况下,遇到不包含任何分隔符的行时,`cut` 不会产生错误消息;但如果希望跳过这样的情况,需启用 `-s` 或者 `--only-delimited` 标记。例如: ```bash echo "no_delimiter_here" | cut -d':' -f1 ``` 上述不会报错,而加入参数后则忽略无冒号分割的数据行: ```bash echo "no_delimiter_here" | cut -d':' -f1 -s ``` --- ##### 示例 5: 从标准输入提取 可以直接通过管道传递字符串给 `cut` 进行实时处理。举个例子: ```bash echo "hello world" | cut -d' ' -f2 ``` 这里把单词 “world” 单独截取出显示出来。 --- ##### 示例 6: 实际应用场景——分析 Apache 日志 假设有这样一条典型的 Web 访问记录: ``` 192.168.1.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 ``` 为了获取访问者的 IP 地址,可以用下面的方法完成任务: ```bash cat access.log | cut -d' ' -f1 ``` --- ##### 示例 7: 结合其他命令 经常与其他 GNU 工具链配合工作以增强灵活性。比如说统计某个目录下所有 `.txt` 文件大小总和的过程可能涉及多个阶段的操作流程之一就是利用 `cut` 来分离单位标识后的纯数值部分再累加起来计算总量。 ```bash du -sh *.txt | cut -f1 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值