Dynamic delimiter in cut command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Dynamic delimiter in cut command
# 1  
Old 01-21-2006
Dynamic delimiter in cut command

hello..

my prob is as follows:

i have to read from a file which may have different formats depending upon the delimiter used in the data of the file.now i need that the user input the delimiter.the input delimiter is stored in a variable and is used on cut command to retrieve necessary info.now the prob arises here since the cut command accepts only a single character as a delimiter and so the delimiter is not possible to be specified dynamically to the cut command

i have also tried to modify the IFS system variable but to no avail

can anyone kindly help me out please?
# 2  
Old 01-21-2006
I think i understood your problem. Clear the following doubts,

1. How many delimiters will your data file have. Even the delimiter changes dynamically there will be only one delimiter throughout the file no?

If there is only one delimiter, and you want to get the delimiter as input, the following shell script will help you

Code:
/export/home/test/mons/UnixForum>cat comma_del.dat
hai,welcome,to,UnixForum

Code:
/export/home/test/mons/UnixForum>cat cut_dyn_del.sh
#!/bin/ksh
delimiter=$1
datafile=$2
data=`cut -d"$delimiter" -f1 $datafile`
print "First column is " $data

Code:
/export/home/test/mons/UnixForum>cut_dyn_del.sh , comma_del.dat
First column is  hai

Code:
/export/home/test/mons/UnixForum>cat  pipe_del.dat
Unixforum | welcomes | you

Code:
/export/home/test/mons/UnixForum>cut_dyn_del.sh "|" pipe_del.dat
First column is  Unixforum

# 3  
Old 01-21-2006
thanks

hi mona...thanks a lot...actually i had been doing the same thing but i am still getting an error...

let me send u my code fragment....


GRPSEP=':'

if [ $FORMAT -eq 1 ]
then
echo $GRPSEP
COMMAND=`head -$CNT $TEMP_FILE | tail -1 | cut -f2 -d"$GRPSRP"`
exit

i am gettin the foll error on the execution of the above script....
cut: option requires an argument -- d
Try `cut --help' for more information.


can u pl help me find my prob...?
# 4  
Old 01-21-2006
welllll got the error ...that was so foolish of me...

i have used two diff names at two diff places....GRPSEP and GRPSRP...

thanks for ur help..

bye
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cut command with dynamic passing of delimiter and position values

Hi All, We have a requirement of picking nth position value by using cut command. value would be delimited by any symbols. We have to pass delimited value and postition to get the value in a string. ex. echo "A,B,C,D,E" |cut -d "," -f3 echo "A|B|C|D|E"|cut -d "|" -f2 Kindly frame the... (5 Replies)
Discussion started by: KK230689
5 Replies

2. Shell Programming and Scripting

Problem in using cut command with pipe as a delimiter while using in a script

There is a text file in my project named as "mom.txt" in which i want to have contents like.................. LSCRM(Application Name): 1: This is my first application. 2: Today we did shell scripting automation for this app. 3: It was really a good fun in doing so. 4: Really good.| (Here i... (7 Replies)
Discussion started by: Abhijeet Anand
7 Replies

3. Shell Programming and Scripting

How to cut by delimiter, and delimiter can be anything except numbers?

Hi all, I have a number of strings like below: //mnt/autocor/43°13'(33")W/ and i'm trying to get the numbers in this string, for example 431333 please help thanks ahead (14 Replies)
Discussion started by: sunnydanniel
14 Replies

4. Shell Programming and Scripting

how to cut all string after the last delimiter?

hi all, suppose a string: abc/def/ghi/jkl/mn.txt and i want to get the file name without the path. however, different files have different paths, therefore the number of delimiter is uncertain. thanks so much! (3 Replies)
Discussion started by: sunnydanniel
3 Replies

5. UNIX for Dummies Questions & Answers

set output delimiter as tab in cut command

I can not make it work, it prints \t rather than introduce tabs. cut -d "," -f 4,8 Samples.csv --output-delimiter="\t" | sort > out Since I am running this command within a shell script, I tried manually inserting tab in this command, still does not work. I am using bash shell Suggestions... (8 Replies)
Discussion started by: analyst
8 Replies

6. Shell Programming and Scripting

cut -d with more than 1 delimiter?

I need to cut or otherwise get the 4th and 5th position output of for i in `date +%H` ; do vnstat --dumpdb | grep "h;$i" ; done example output is: h;13;1310318701;443;93 I only need ";443;93" from any given run of "for i in `date +%H` ; do vnstat --dumpdb | grep "h;$i" ; done" Thanks... (3 Replies)
Discussion started by: Habitual
3 Replies

7. UNIX for Advanced & Expert Users

use a word as a delimiter with cut

Is there a way to use a word as a delimiter with cut? Or is there a way to use sed or awk with a word as a delimiter? I don't care which program I use for a delimiter I just want to use a word as a delimiter. (2 Replies)
Discussion started by: cokedude
2 Replies

8. Shell Programming and Scripting

CUT command delimiter in reverse

Hi, I've a situation where, a=xxx.yyy.zzz.txt EXTN=`echo $a | cut -d . -f2` Using the above code it delimites and will return "yyy.zzz.txt" to EXTN. But i need to get only the extension "txt". so as per the above code it delimits in the first "." itself. Can anyone help how to do... (6 Replies)
Discussion started by: skcvasanth
6 Replies

9. UNIX for Advanced & Expert Users

How can I use double character delimiter in the cut command

Hi All, Can the cut command have double character delimiter? If yes, how can we use it. if my data file contains : apple || mango || grapes i used cut -f1 -d"||" filename but got an error. Plz help.... Thanks. (1 Reply)
Discussion started by: AshishK
1 Replies

10. Shell Programming and Scripting

\r as delimiter in cut

I need to use \r as a delimiter in the -d option of the cut comand . Any help ? Thanks in advance . SD (5 Replies)
Discussion started by: shweta_d
5 Replies
Login or Register to Ask a Question