need help in correcting the code


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting need help in correcting the code
# 1  
Old 09-18-2011
Java need help in correcting the code

Hi Guys !

can anyone help me to write the code doing same thing without using awk. is it possible using cut command?

Code:
awk '{c[$1]++} END {for(k in c} print k "\t\t" c[k ];}' file_name | sort -nrk 2 | column -t

thanks in advance

BR

Ewa

Last edited by Scott; 09-18-2011 at 11:27 AM.. Reason: Code tags
# 2  
Old 09-18-2011
how about your input file?
maybe you can try like this.(while FS is space!)
Code:
$ cut -d" " -f1 file_name|sort|uniq -c|sed 's/ *\(.*\) \(.*\)/\2  \1/'

regards
ygemici
This User Gave Thanks to ygemici For This Post:
# 3  
Old 09-18-2011
Hi

your code is working fine but can you explain a bit only this part >>>> sed 's/ *\(.*\) \(.*\)/\2 \1/'


and if you don't mind please explain also

what is difference between these two lines why they give difference results?

Code:
[ cut -f1 -d' ' file_name | sort |uniq -c | sort -nr ]

"what the first sort does in the above line"?

Code:
[ cut -f1 -d' ' file_name | uniq -c | sort -nr ]

"the second line produce different result "

BR

Eva

Last edited by Scott; 09-18-2011 at 11:28 AM.. Reason: ...
# 4  
Old 09-18-2011
we must firstly use the sort command, because of uniq command process for sequential lines.therefore we use firstly sort command for get the sequential lines.
Code:
# cat file
a b
b c
a b
d c
a b
a b

uniq + sort (unsuccesfull)
Code:
# cut -f1 -d' ' file|uniq -c
      1 a
      1 b
      1 a
      1 d
      2 a

Code:
# cut -f1 -d' ' file|uniq -c|sort
      1 a
      1 a
      1 b
      1 d
      2 a


sort + uniq (successfull)
Code:
# cut -f1 -d' ' file|sort
a
a
a
a
b
d

Code:
# cut -f1 -d' ' file|sort|uniq -c
      4 a
      1 b
      1 d

and with sed
Code:
# sed 's/ *\(.*\) \(.*\)/\2  \1/'

s (substitute) --> s/regexp/replacement/
* --> represent the initial "spaces" of string (between the quotes)
Code:
"      "4 a
"      "1 b
"      "1 d

\(.*\) --> 4 --> \(.*\) this strucutes saves the our string (.* is means everything) --> represent '\1' while writes it
and there is a space " "
\(.*\) --> a --> represent '\2' while writes it

finaly we write our values to stdoutp
\2 --> a
and two spaces
\1 --> 4

Code:
# cut -f1 -d' ' file |sort|uniq -c|sed 's/ *\(.*\) \(.*\)/\2 \1/'
a  4
b  1
d  1

regards
ygemici

Last edited by ygemici; 09-18-2011 at 04:03 PM..
This User Gave Thanks to ygemici For This Post:
# 5  
Old 09-18-2011
Hi ygemici

very grateful to you... couldn't be taught in a better and simplest way as you did, each line is precisely explain, peace on you

thanks once again

kind Regards,

Ewa
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Correcting awk error

the following code turns back ticks "`" to new lines "\n". Then, it attempts to grab only a certain section of the output and excludes lines that contain particular patterns...i.e. "ZooLine|echo|opencert". awk -vs1="\`" '{gsub(s1,"\n",$0)} 1 {print ; if(/NewLine \(\)/,/}/{if(!/NewLine|echo... (3 Replies)
Discussion started by: SkySmart
3 Replies

2. Shell Programming and Scripting

Need help in correcting sed script

Hi All, I have a big configuration log where I want to change string "aaa" to "bbb" under auto-config-policy only right after "deny", "accept" and "hold" strings, nowhere else. <<<< text >>>>> auto-config-policy test deny aaa precedence 4 profile aaa any deny aaa... (4 Replies)
Discussion started by: temp.sha
4 Replies

3. UNIX for Dummies Questions & Answers

[Solved] Help correcting file with differing number of fields

Hi all, I have a tab separated file, and one of the fields is sub-delimited by colon. The problem is there can be zero to 4 colons within this field. When I try to change colons to tabs the result is a file with a differing number of fields. I want to go from: a:b:c:d:e a:b:c a:b:c:d:e a... (4 Replies)
Discussion started by: torchij
4 Replies

4. UNIX Desktop Questions & Answers

Correcting the display resolution

I have an issue with the display resolution under Xfce. The monitor can handle 1024x768, but the screen display is 800x600. The control panel does not allow me to change this. I also found the file .config/xfce4/xfconf/xfce-perchannel-xml/displays.xml in which I have made changes, but after a... (0 Replies)
Discussion started by: figaro
0 Replies

5. AIX

Help me in correcting sendmail.cf

Hi all, In AIX I need to set the below two as of now these are not. 1)Opnoexpn is not set in sendmail.cf 2)Opnovrfy is not set in sendmail.cf Please let me know the steps to set Opnoexpn and Opnovrfy in sendmail.cf Thanks and Regards, Pavankumar (0 Replies)
Discussion started by: pavankumar432
0 Replies

6. UNIX for Dummies Questions & Answers

Correcting the time on FreeBSD

Possibly this is not even a FreeBSD issue, but a BIOS issue. Upon installation of FreeBSD, the time is set using the standard feature of selecting a time zone. Some installations are correctly set to the current time, but others are either one or two hours off. So the time is read from the time... (0 Replies)
Discussion started by: figaro
0 Replies

7. Solaris

Correcting system time

I've installed Solaris 8, but didn't quite give it the correct (machine) time. Think the machine is out of sync. Can I change that afterwards or do I have to do another install right from the beginning? (1 Reply)
Discussion started by: kuultak
1 Replies

8. Shell Programming and Scripting

Correcting script

Hi! I have for example a script/file: +1 echo "toto" +2 echo "abcdef +3 echo "dqmsl" $r "dsqlfj" +4 cat titi | tr \t' ';' +5 exit --------------------------------------- I try to find a solution who say: <ERROR> The character " has been forgotten a the line 2 The character... (7 Replies)
Discussion started by: Castelior
7 Replies
Login or Register to Ask a Question

Featured Tech Videos