On 12/12/2010 3:23 PM, Heiko Schlittermann wrote: > Marc Perkel<[email protected]> (So 12 Dez 2010 23:54:19 CET): >> >> On 12/12/2010 2:40 PM, Heiko Schlittermann wrote: >>> Marc Perkel<[email protected]> (So 12 Dez 2010 23:26:54 CET): >>>>> in bash: >>>>> >>>>> $ cat test.txt | sort | uniq -c | while read line; do count=${line% *}; if > BTW, useless use of cat :-) > >>>>> [ $count -ge 3 ]; then echo ${line/*$count /}; fi; done >>>>> four >>>>> three >>>>> $ >>>>> >>>>> Cheers, >>>> Thanks but I'm getting "too many arguments" on >>>> >>>> [ $count -ge 3 ]; >>> If you quote $count >>> >>> [ "$count" -ge 3 ] >>> >>> the error will disappear. But this would fix just the symptom, as any >>> line should have a count prepended. >>> >> Well - getting "integer expression expected" now. :( > For testing: > > <test.txt sort | uniq -c | while read line; do count=${line% *}; echo > "$count : $line"; done > > But the solution using grep is much more clean. > > Or try this (it's what I was thinking about when I told you about the -c > option on uniq) > > <test.txt sort | uniq -c | while read count line; do > [ $count -ge 2 ]&& echo "$line" > done >
The problem is that I have a space in the data I'm sorting. The code that sets the $count variable includes up to the last space in the string. -- ## List details at http://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
