【发布时间】:2022-01-15 00:57:19
【问题描述】:
我正在处理包含> 1000行的日志
# modern trends: tommy hilfinger vs lacoste
1: 7ltn-A 46.8 0.4 301 306 100 LOL TOP: 5C-LIKE PRO;
2: 7m8x-A 46.8 0.3 298 299 100 LOL TOP: 5C-LIKE PRO;
3: 7l12-A 46.8 0.4 301 305 100 LOL TOP: 5C-LIKE PRO;
4: 7l10-A 46.8 0.3 299 303 100 LOL TOP: 5C-LIKE PRO;
5: 7jt7-A 46.8 0.4 301 306 100 LOL TOP: 5C-LIKE PRO;
6: 7nw2-B 46.8 0.4 301 301 100 LOL TOP: 5C-LIKE PRO;
7: 7m91-A 46.8 0.3 299 303 100 LOL TOP: 5C-LIKE PRO;
...
1000: 4wmd-B 41.4 1.3 298 304 50 LOL TOP: 5F-SOSO PRO;
我需要过滤它,只取第二列中的 ID 代码并以类似的格式保存:
7ltn-A
7m8x-A
7l12-A
7l10-A
7jt7-A
7nw2-B
7m91-A
...
4wmd-B
或者以逗号分隔的一行格式:
7ltn-A, 7m8x-A, 7l12-A, 7l10-A, 7jt7-A, 7nw2-B, 7m91-A ... , 4wmd-B
我尝试了以下 AWK 解决方案,但它只打印第一行的值
awk '$1=="1:"{printf("%s\n", $2)}' input.log > output.log
【问题讨论】:
-
awk 'NR>1{print $2}' input.log > output.log? -
$1=="1:说你只想要第一行。 -
@HotJAMS :
grep -v '^#' input.log | cut -d ' ' -f 2 > output.log不会实现你想要的吗?这也可以可靠地排除文件中间的注释行。 -
不是完整的副本,也不应该被删除。