cut command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting cut command
# 1  
Old 11-09-2007
cut command

I have a file called abc which has 3677 application logins ..Here is the format.

web_1323132.log:Fri Nov 2 06:27:28 : KUMAR MEENA MKUMAR 7655 IND015 011 RANDOM v5.1.45 webenv random1 02-Nov-2007 06:27:20.

I am trying to get a list of all users(ex. KUMAR MEENA) which uses our application "Random" which is hosted on random1 server.
Using cut command, we can do this, But I am not sure about exact syntax.
Please help.
# 2  
Old 11-09-2007
You don't want to use 'cut'. Try this:

Code:
awk -F: '/RANDOM/{split($5,a," ");print a[1],a[2]}' abc

# 3  
Old 11-09-2007
Good enough..It works...Thanks a lot...
# 4  
Old 11-09-2007
Could you explain how this awk works, all I know it somehow splits field 5 into the first and last name, but how did field 5 because the name. Thanks.

Quote:
Originally Posted by gus2000
You don't want to use 'cut'. Try this:

Code:
awk -F: '/RANDOM/{split($5,a," ");print a[1],a[2]}' abc

# 5  
Old 11-09-2007
When splitting fields with 'awk', the default field-separator is a pattern that matches whitespace. Commonly, data is arranged in columns separated by a special character like a comma or colon, so in those cases we must set the field separator.

awk -F:

Now that ":" is the separator, we can always take the 3rd column by using "$3". Unfortunately, in this case, one of the fields included a timestamp (and two extra colons!) so I used $5 to indicate where the name starts, even though HH:MM:SS is really one value.

The text between the slashes is a regex, so only matching lines (those with "RANDOM" in them) are considered. Then, $5 is split into array "a" using a blank space as a separator. Thus the first two elements, a[1] and a[2] must be the first/last name.

Sometimes 'cut' can be the better choice when the columns are of fixed width, but it didn't appear to be the case here. For instance, won't the date get wider by one byte after the 9th of the month? In those cases it's better to use something like 'awk' that can separate the fields based on a pattern.
# 6  
Old 11-11-2007
Actually, cut doesn't care what length the fields are if you use the -d:

Then you can specify which "field" with -f[n] where [n] is the actual field number you want.

Code:
echo "This is a: Test of the cut: command" | cut -d: -f2
 Test of the cut

Note that the white space is considered just another character in the field after changing the delimiter.

I cannot vouch for all OS versions of cut, but it works on OS X.
# 7  
Old 11-20-2007
Guess This Mite Work!!!!!!!!!!!!!!!!!

cut -d":" -f5 aa | cut -d" " -f1-3

Regards,
Anand
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Cut command: can't make it cut fields

I'm a complete beginner in UNIX (and not a computer science student either), just undergoing a tutoring course. Trying to replicate the instructions on my own I directed output of the ls listing command (lists all files of my home directory ) to My_dir.tsv file (see the screenshot) to make use of... (9 Replies)
Discussion started by: scrutinizerix
9 Replies

2. Shell Programming and Scripting

Cut command

Hi All, I am a beginner learning shell script, Would it be possible to use -c and -f in cut command together ? Example : /opt/oracle/work/Antony/Shell_Script> cat shortlist 2233|a.k. shukula |g.m. |sales2 |12/12/52 |6000 1006|chanchal singhvi ... (3 Replies)
Discussion started by: Antony Ankrose
3 Replies

3. AIX

Need help on cut command

HI, i have data in one variable like out=/usr/sbin/filename and i want output like only out=filename how to do (5 Replies)
Discussion started by: sumanthupar
5 Replies

4. UNIX for Dummies Questions & Answers

Cut pid from ps using cut command

hay i am trying to get JUST the PID from the ps command. my command line is: ps -ef | grep "mintty" | cut -d' ' -f2 but i get an empty line. i assume that the delimiter is not just one space character, but can't figure out what should i do in order to do that. i know i can use awk or cut... (8 Replies)
Discussion started by: ran ber
8 Replies

5. Shell Programming and Scripting

Cut Command error cut: Bad range

Hi Can anyone what I am doing wrong while using cut command. for f in *.log do logfilename=$f Log "Log file Name: $logfilename" logfile1=`basename $logfilename .log` flength=${#logfile1} Log "file length $flength" from_length=$(($flength - 15)) Log "from... (2 Replies)
Discussion started by: dgmm
2 Replies

6. Shell Programming and Scripting

cut command help

n2=user1 pts/3 2010-06-29 01 Now i want to split this string with space(' ') character. After splitting output would be: use1 pts/3 2010-06-29 01 I did: nn=${n2} | cut -d ' ' -f2 echo ${nn} It prints nothing. I want the output: pts/3 (2 Replies)
Discussion started by: cola
2 Replies

7. AIX

Use of Cut Command

Hi All, Can anyone tell me how to use cut command?I have tried but its not working...Please find the details below : $ cat file1 SlNo. E_ID E_Name Age Dept 1 123 A 20 Electrical 2 124 B 20 Electronics 3 125 C 24 Computer 4 126 D 23 Mechanical ... (3 Replies)
Discussion started by: Puja Sharma
3 Replies

8. UNIX for Dummies Questions & Answers

Cut Command help

Hi , I am new to Unix.I have a shell script whenere I wnat to find if a particular server is running and kill all the instances of it (running on different ports) script filename to start the srever is say abcd If i do ps -eaf | grep abc I get all the instances of srever running .In the... (1 Reply)
Discussion started by: shradham
1 Replies

9. UNIX for Dummies Questions & Answers

CUT Command

Hi, Can anyone tell me if I can apply multiple cut on a single variable like below in a sh script: tmp=`cut -c 1-4 $val` tmp1=`cut -c 5-12 $val` tmp2=`cut -c 13-18 $val` If not, what is the other way to do this. Thanks and Best Regards Shoeb (17 Replies)
Discussion started by: shoeb_syed
17 Replies
Login or Register to Ask a Question