awk - 对命令列表重新排序和重新编号
问题描述
我正在尝试对以下命令块重新排序和重新编号,以便每个命令都遵循遵循如下结构的编号:
0.1
0.2
..
0.9
1.0
1.1
..
到目前为止,我可以使用以下命令拉出带有数字的行,但我不确定执行重新排序 + 重新编号的最佳方法是什么。我能得到一些帮助吗?
awk '$2 ~ /\y[0-9]+\y/' eem.txt
要过滤的输出
event manager applet monitorHealth authorization bypass
event manager applet monitorHealth
event syslog pattern xx maxrun 50 ratelimit 50
action 0.1 cli command xx
action 0.2 cli command xx
action 0.4 cli command xx
action 0.4 cli command xx
action 0.4 cli command "undebug all”
action 0.3 cli command xx
action 0.4 cli command xx
action 0.5 cli command xx
action 0.6 cli command xx
action 0.7 cli command xx
action 0.8 cli command xx
action 0.9 cli command xx
action 1.1 cli command xx
action 1.2 cli command xx
action 1.3 cli command xx
action 1.4 cli command xx
action 1.5 cli command xx
action 1.6 cli command xx
action 1.7 cli command xx
action 1.8 cli command xx
action 1.9 cli command xx
action 2.1 cli command xx
action 2.2 cli command xx
action 2.3 cli command xx
谢谢。
解决方案
要对行重新编号,只需为新数字设置一个计数器,对于每个匹配的行,用它替换第二列的当前值并增加 0.1。
$ awk -v counter=0.1 '$2 ~ /^[0-9]+\.[0-9]$/ { $1 = " " $1; # Keep the leading spaces
$2 = sprintf("%.1f", counter);
counter += 0.1 } 1' eem.txt
event manager applet monitorHealth authorization bypass
event manager applet monitorHealth
event syslog pattern xx maxrun 50 ratelimit 50
action 0.1 cli command xx
action 0.2 cli command xx
action 0.3 cli command xx
action 0.4 cli command xx
action 0.5 cli command "undebug all”
action 0.6 cli command xx
action 0.7 cli command xx
action 0.8 cli command xx
action 0.9 cli command xx
action 1.0 cli command xx
action 1.1 cli command xx
action 1.2 cli command xx
action 1.3 cli command xx
action 1.4 cli command xx
action 1.5 cli command xx
action 1.6 cli command xx
action 1.7 cli command xx
action 1.8 cli command xx
action 1.9 cli command xx
action 2.0 cli command xx
action 2.1 cli command xx
action 2.2 cli command xx
action 2.3 cli command xx
action 2.4 cli command xx
推荐阅读
- junit - 使用 Mockito 在 JUnit 中获取 BadRequestException
- php - 通过提供 api 密钥使用 curl 在 php 中调用 api
- amazon-web-services - 如何在一个账户中设置 AWS SNS 以便能够接收来自其他账户 SES 的通知?
- c - PIC 微控制器的 Modbus 功能代码 1 和 crc 检查
- php - MySQL 性能问题,做报告时工作很慢
- php - 如何删除codeigniter中where_in条件中存在的数组?
- python - 在 Python 中合并数据框时出现内存错误
- php - 如何在 PHP 中使用键作为序数元素将元素添加到数组中
- python-3.x - 如何显示从原始年份开始到 2025 年的所有生日
- javascript - JavaScript 点击功能不会立即在 IE 上触发 JSF 操作方法