CUT Command


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers CUT Command
# 8  
Old 03-23-2006
CUT Command

Quote:
Originally Posted by gauravgoel
do the following things,

1) instead of redirecting it to tempfile, display the variables on terminal and see if they are getting displayed.
a)Have tried this by assigning (hard coding) the value to a variable and it working fine.

b) If I write a value to variable by looping, it prints nothing on the screen. However, it takes some time to return me to shell prompt. (as if working).

Quote:
Originally Posted by gauravgoel
2) if the step 1 is not working then post your script and the output after running it using set -x.
I am really sorry, but I don't know how and where to use this option.

I will really appreciate your feedback on this.

Thanks and best regards

Shoeb
# 9  
Old 03-23-2006
Code:
#! /bin/ksh

typeset -L4 tmp
typeset -L8 tmp1
typeset -L6 tmp2

while read initial
do
        tmp=$initial
        initial=${initial#$tmp}
        tmp1=$initial
        initial=${initial#$tmp1}
        tmp2=$initial
        initial=${initial#$tmp2}

        echo "$tmp $tmp1 $tmp2"

done < input.txt

Since your boundaries for cut are fixed, so the typeset lengths are fixed i.e.
typeset -L4 tmp == cut -c 1-4
typeset -L8 tmp1 == cut -c 5-12
typeset -L6 tmp2 == cut -c 13-18
# 10  
Old 03-23-2006
Hi,
Just check if the code given by vino works. if it doesn't then

the set -x option is used to run the script in debug mode.
write this after #! line i.e. first line of the script and then run the script.
post both the script and the output. Keep the no. of iterations of loop small otherwise the output will be very large

Gaurav
# 11  
Old 03-23-2006
one more thing I have just tried the following and its working fine

Quote:
echo "1 2 3
2 3 4 5"|while read line
do
echo $line
val=$1
tmp=`echo $val|cut -c 1-4`
tmp1=`echo $val|cut -c 3-6`
echo $tmp $tmp1
done
pass the string as a parameter to string and the values are properly CUT.

Gaurav
# 12  
Old 03-23-2006
CUT Command

This is the output if I assign the value to the variable in the script.

Code:
# ./n5
val=162002/02/06226275
+ echo 162002/02/06226275
+ cut -c 1-4
tmp1=1620
+ echo 162002/02/06226275
+ cut -c 5-12
tmp2=02/02/06
+ echo 162002/02/06226275
+ cut -c 13-18
tmp3=226275
+ echo 1620 02/02/06 226275
1620 02/02/06 226275

I think there is something wrong with the code below: (p.s. I dont know my pipelined awk and head -2 will work in sh or not)

Code:
set -x

awk {'print $1'} d15| head -2| while read line
do
val=$1
tmp1=`echo $val|cut -c 1-4`
tmp2=`echo $val|cut -c 5-12`
tmp3=`echo $val|cut -c 13-18`
echo $tmp1 $tmp2 $tmp3  >> t4
done

The o/p is below:

Code:
val=
+ echo
+ cut -c 1-4
tmp1=
+ echo
+ cut -c 5-12
tmp2=
+ echo
+ cut -c 13-18
tmp3=
+ echo
+ read line
val=
+ echo
+ cut -c 1-4
tmp1=
+ echo
+ cut -c 5-12
tmp2=
+ echo
+ cut -c 13-18
tmp3=
+ echo
+ read line

Vino, I have tried your code, its o/p is as below:

Code:
1809 01/02/06 01/02/
1814 01/02/06 01/02/

Can you suggest why it is not assigning value to tmp2. Also, can you please tell me how can I redirect o/p of the script you have given to a file. I mean redirect is ">>" only in KSH or something diff.

Also, I am sorry but I am not familier with KSH, can you suggest me a link where I can understand your code.

Best Regards

Shoeb

Last edited by shoeb_syed; 03-23-2006 at 04:29 AM.. Reason: some more addition
# 13  
Old 03-23-2006
Hey man what are you exactly doing,

your val=$1 expects a commandline parameter.
since you are not passing the commandline parameter the value is not getting set, and thats why the blank output is coming.

To me it seems that you are confused between $1 of awk and $1 you are trying to set in val. Both are different.
Correct me if I am wrong

Gaurav

Last edited by gauravgoel; 03-23-2006 at 04:33 AM.. Reason: typo
# 14  
Old 03-23-2006
CUT Command

I am sorry Gaurav, but I really thought that both are same. I hope you will forgive me for my lack of knowledge.

Can you please correct me how can I pass command line parameter.

Thanks & Best Regards

Shoeb
 
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

i have the following line set line=abc d efg h^ijklmno and then i say: echo $line | cut -d^ -f1 i want to receive this: abc d efg h instead i receive this: abc d efg h how can i ignore blanks in the cut command? (4 Replies)
Discussion started by: tolkki
4 Replies
Login or Register to Ask a Question