Що у мене є у файлі, так і є
112}2014-03-02}ABC
112}2014-02-02}ABC
112}}ABC
112}2014-03-02}ABC
112}2013-03-02}ABC
112}2013-02-02}ABC
112}2013-03-02}ABC
Мені потрібно поздоровитись і побачити щось подібне як вихід і шукати один вкладиш (кращий варіант)
2014-03-02 2
2014-02-02 1
1
2013-03-02 2
2013-02-02 1
Я знайшов це питання але це не відповідає моєму призначенню.
Я також спробував щось подібне, але не пощастило
grep -ioh "2014" file.txt | sort | uniq -c
grep -ioh "2013" file.txt | sort | uniq -c
Відповіді:
3 для відповіді № 1Це awk
може зробити:
awk -F} "{a[$2]++} END {for (i in a) printf "%-10s %sn",i,a[i]}" file
1
2013-02-02 1
2014-02-02 1
2014-03-02 2
2013-03-02 2
1 для відповіді № 2
Ось як ви могли це зробити egrep
:
egrep -o "[0-9]{4}-[0-9]{2}-[0-9]{2}" file.txt | sort | uniq -c
Вихід:
1 2013-02-02
2 2013-03-02
1 2014-02-02
2 2014-03-02
Редагувати
Щоб також порахувати рядки без дати на них, ви можете підійти до нього аналогічно до відповіді @Jotnes:
grep -o "}[^}]*}" | tr -d "}" | sort | uniq -c
Вихід:
1
1 2013-02-02
2 2013-03-02
1 2014-02-02
2 2014-03-02