[問題] shell找文件內字串重複的數量

作者: clv (慢慢習慣成為大叔)   2019-05-01 13:14:19
請問一下
我有一個檔案 裡面會紀錄一堆內容
格式是
開始時間|結束時間|事件|內容|狀態
正常情況下 同一個開始時間會有兩筆資料
請問我該如何列出某事件 開始時間只有一筆資料的
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|內容
這筆資料
作者: rickieyang (Rickie Yang)   2019-05-01 14:08:00
看不懂你的例如, 跟你說的 "只有一筆資料" 有啥關聯喔... 看懂了...uniq 好像只能忽略前面的 n fields or n charscat filename |sort|awk -F\| '{count[$1]++;if(str!=""&&str!=$1&&count[str]<2){print line};str=$1;line=$0}END{if(count[str]<2){print line}}'用 awk 硬湊...
作者: Gold740716 (項為之強)   2019-05-01 22:52:00
uniq 可以用 -w 只比對前 n 個字元sort 檔案名稱 | uniq --check-chars=19 --unique
作者: rickieyang (Rickie Yang)   2019-05-02 00:19:00
原來是 macOS 的 uniq 沒有 -w ... 才在想好像用過,但是 man 不到@@
作者: holishing   2019-05-02 00:59:00
似乎要用 GNU coreutils 版本的 uniq 才有 -w所以 Mac 或 BSD-like 的平臺需要的話可能要自行找套件
作者: Gold740716 (項為之強)   2019-05-02 01:15:00
QQ
作者: clv (慢慢習慣成為大叔)   2019-05-03 00:04:00
我的看起來不能用 -w 感覺大大們的資訊 謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com