作者clv (慢慢习惯成为大叔)
看板Linux
标题[问题] shell找文件内字串重复的数量
时间Wed May 1 13:14:19 2019
请问一下
我有一个档案 里面会纪录一堆内容
格式是
开始时间|结束时间|事件|内容|状态
正常情况下 同一个开始时间会有两笔资料
请问我该如何列出某事件 开始时间只有一笔资料的
grep XXXXX 档案名称 > text.txt
uniq -u text.txt
不过这样只能用行去比 请问我该如何只比该行的某几个位字呢?
请各位大神给我一个方向即可 不知要用什麽关键字去查
例如
档案
2019-05-01-14.22.11|2019-05-01-14.22.11|XXXXX|内容
XXXXXIYOWUW穿插的无用资讯
2019-05-01-14.23.01|2019-05-01-14.23.01|XXXXX|内容
SDWSW无用资讯
2019-05-01-14.22.11|2019-05-01-14.23.03|XXXXX|内容
TTTT无用资讯
我只想列出
2019-05-01-14.23.01|2019-05-01-14.23.01|XXXXX|内容
这笔资料
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.184.75
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1556687661.A.158.html
1F:推 rickieyang: 看不懂你的例如, 跟你说的 "只有一笔资料" 有啥关联 05/01 14:08
2F:推 rickieyang: 喔... 看懂了... 05/01 14:10
3F:推 rickieyang: uniq 好像只能忽略前面的 n fields or n chars 05/01 14:25
4F:→ rickieyang: cat filename |sort|awk -F\| '{count[$1]++;if(str!= 05/01 14:26
5F:→ rickieyang: ""&&str!=$1&&count[str]<2){print line};str=$1;line 05/01 14:26
6F:→ rickieyang: =$0}END{if(count[str]<2){print line}}' 05/01 14:27
7F:→ rickieyang: 用 awk 硬凑... 05/01 14:27
8F:推 Gold740716: uniq 可以用 -w 只比对前 n 个字元 05/01 22:52
9F:→ Gold740716: sort 档案名称 | uniq --check-chars=19 --unique 05/01 22:54
10F:推 rickieyang: 原来是 macOS 的 uniq 没有 -w ... 才在想好像用过, 05/02 00:19
11F:→ rickieyang: 但是 man 不到@@ 05/02 00:19
12F:推 holishing: 似乎要用 GNU coreutils 版本的 uniq 才有 -w 05/02 00:59
13F:→ holishing: 所以 Mac 或 BSD-like 的平台需要的话可能要自行找套件 05/02 01:01
14F:推 Gold740716: QQ 05/02 01:15
15F:→ clv: 我的看起来不能用 -w 感觉大大们的资讯 谢谢 05/03 00:04