Need help for Cut Command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help for Cut Command
# 1  
Old 07-31-2009
Need help for Cut Command

Hi All,
Greetings..
I am having a Line of 1600 characters in which each specifi fields have some values. For example 1-5 Firstname 6-8 Age and so on..
I am using `expr substr $line 100,7` to get values from the line and store in seperate variables..
The file contains 70000 lines. It is taking 3 hrs to complete the whole file.

Can anyoe suggest me to replace the above substr command with awk or cut command?

Also, Please tell me which one is quicker..substr or cut or awk ?
Please help

Thanks in advance!

Last edited by dinesh1985; 07-31-2009 at 11:48 AM..
# 2  
Old 07-31-2009
Can you post example data, or give a more detailed breakdown of what you are trying to achieve ?

i.e. Are the fields space seperated / how many fields are you trying to extract etc.
# 3  
Old 07-31-2009
Question

Hi ,
Thanks for the reply..I am able to use the cut -c command and able to achieve my requirement. But Now I am facing a problem for sed -e command with cut command.

If I use
Code:
echo "SPACE    " | cut -c 1-10

I will get the output as "SPACE "
I donot need the white spaces followed to be printed. So I am using the command as
Code:
echo "SPACE     " | cut -c 1-10 | sed -e 's/*$//g'

. But eventhough i am using the sed command piped with cut -c ,the white spaces are not removed. Can anyone help on this.

Thanks in advance
# 4  
Old 07-31-2009
I thin awk will do the job alot faster. You can use the substr function in awk to parse out your data.
# 5  
Old 07-31-2009
Your forgot to give a space:
echo " SPACE " | sed -e 's/ *$//g' # Removes all spaces at the end only
echo " SPACE " | sed -e 's/ //g' # Removes all spaces. Front also

xx=" SPACE "
echo $xx # No space
echo "$xx" # With space
# 6  
Old 08-03-2009
Working after added a space in the sed command

Thanks a lot.. After adding a space it is working properly.
Code:
sed -e 's/ *$//g'

# 7  
Old 08-03-2009
Speed ? Use only awk substr+gsub or only shell builtin. Mixed shell + awk/cut/sed is slow.
Shell:
Code:
#!/bin/ksh
#!/bin/bash
while read line
do
     f1=${line:0:5}  # 1st char index is 0   {var:pos:len}
     f1=${f1%% *}     # remove last spaces
     f2=${line:5:3}
     f2=${f2%% *}     # remove last spaces
     echo "<$f1><$f2>"
done < inputfile

Awk:
Code:
awk '{
f1=substr($0,1,5)
f2=substr($0,6,3)
gsub(/ *$/,"",f1)
gsub(/ *$/,"",f2)
print "<" f1 "><" f2 ">"
} ' inputfile

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