如果我有以下conentLinux命令或腳本計算文本文件中的重複行數?
red apple
green apple
green apple
orange
orange
orange
是否有一個Linux命令或腳本,我可以用它來得到以下結果的文本文件?
1 red apple
2 green apple
3 orange
如果我有以下conentLinux命令或腳本計算文本文件中的重複行數?
red apple
green apple
green apple
orange
orange
orange
是否有一個Linux命令或腳本,我可以用它來得到以下結果的文本文件?
1 red apple
2 green apple
3 orange
發送它通過sort
(把相鄰的項目一起)然後uniq -c
個給計數,即:
sort filename | uniq -c
,並得到有序那個列表(變頻),你可以
sort filename | uniq -c | sort -nr
你能活下去以字母,有序列表:
echo "red apple
> green apple
> green apple
> orange
> orange
> orange
> " | sort -u
?
green apple
orange
red apple
或
sort -u FILE
-u代表獨特,和唯一性只有通過分揀達到。
它保留了順序的解決方案:
echo "red apple
green apple
green apple
orange
orange
orange
" | { old=""; while read line ; do if [[ $line != $old ]]; then echo $line; old=$line; fi ; done }
red apple
green apple
orange
,並以文件
cat file | {
old=""
while read line
do
if [[ $line != $old ]]
then
echo $line
old=$line
fi
done }
最後兩個僅除去重複的,其緊跟 - 這符合你的例子。
echo "red apple
green apple
lila banana
green apple
" ...
將打印兩個蘋果,由一根香蕉分割。
uniq -c file
並且如果該文件尚未排序:
sort file | uniq -c
cat <filename> | sort | uniq -c
試試這個
cat myfile.txt| sort| uniq
只得到一個數:
$> egrep -o '\w+' fruits.txt | sort | uniq -c
3 apple
2 green
1 oragen
2 orange
1 red
要獲得已分類計數:
$> egrep -o '\w+' fruits.txt | sort | uniq -c | sort -nk1
1 oragen
1 red
2 green
2 orange
3 apple
編輯
啊哈,這不是沿着字界,我的壞。下面是要使用的命令完全行:
$> cat fruits.txt | sort | uniq -c | sort -nk1
1 oragen
1 red apple
2 green apple
2 orange
沒有-c或-d標誌,uniq不區分重複行和非重複行,還是我錯過了某些東西? – drevicko