To find nth position of character in string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting To find nth position of character in string
# 1  
Old 05-13-2014
To find nth position of character in string

Hi guyz i want to know nth position of character in string. For ex.
var="UK,TK,HK,IND,AUS"

now if we see 1st occurance of , is at 3 position, 2nd at 6,..4th at 13 position.
1st position we can find through INDEX, but what about 2nd,3rd and 4th or may be upto nth position. ?
In oracle we had instr there we could provide the nth number occurance also. Here how we can achieve it ?

FYI i am beginner in unix and i m using KSH
# 2  
Old 05-13-2014
Is this a homework assignment?

What operating system and version of ksh are you using? If you don't know, show us the output from the commands:
Code:
uname -a
print ${.sh.version}
what /bin/ksh | grep Version

# 3  
Old 05-13-2014
You could try this function:

Code:
function index
{
    p=1
    f=0
    t="$1"
    catch=""
    while [ $p -le ${#1} ]
    do
        if [ "${t#$2}" != "$t" ]
        then
            let f=f+1
            if [ $f -eq ${3:-1} ]
            then
                echo $p
                return
            fi
        fi
        t="${1#$catch?}"
        catch="${1%$t}"
        let p=p+1
    done
    echo 0
}

Call it like this:

Code:
index "UK,TK,HK,IND,AUS" , 4
# Result: 13

Or even this:

Code:
index "UK,TK,HK,IND,AUS" "?K" 3
# Result: 7


Last edited by Chubler_XL; 05-13-2014 at 06:56 PM.. Reason: Fixup variables not reset from previous calls
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assign a variable the nth character of a string.

I see a millioin ways to do this with echo, but what I wan to do is assign a variable the "nth" character of an incoming parameter to a ksh script. $1 will be "pia" I need to assign the first character to stmttype. (10 Replies)
Discussion started by: klarue
10 Replies

2. Shell Programming and Scripting

Find character and Replace character for given position

Hi, i want find the character '-' in a file from position 284-298, if it occurs i need to replace it with 'O ' for the position in the file. How to do that using SED command. thanks in advance, Sara (9 Replies)
Discussion started by: Sara183
9 Replies

3. Emergency UNIX and Linux Support

Replace nth position character of all the lines in file

I want to replace 150th character of all the lines in a file using sed or awk... searched the forums but didn't find exact answer (9 Replies)
Discussion started by: greenworld123
9 Replies

4. Shell Programming and Scripting

How to extract the certain position's character in a string

Suppose there are two files: A, format is like: line1 12 line2 33 line3 6 ... B, format is like: >header taaccctaaccctaaccctaacccaaccccaccccaaccccaaccccaac ccaaccctaaccctaaccctaacccaaccctaaccctaaccctaacccaa ccctcaccctcaccctcaccctcaccctcaccctcaccctcaccctaacc... (1 Reply)
Discussion started by: bioinflix
1 Replies

5. Shell Programming and Scripting

How to find character position in file?

how to find character positionin file? i.e string = "123X568" i want to find the position of character "X". Thanks (6 Replies)
Discussion started by: LiorAmitai
6 Replies

6. Shell Programming and Scripting

Replace character in certain position in a string

Hello everyone this is my first post of many to come :) I am writing a script and in this script at one point i need to replace a character in a particular position in a string for example: in the string "mystery" i would need to replace the 3rd position to an "r" so the string becomes... (3 Replies)
Discussion started by: snipaa
3 Replies

7. Shell Programming and Scripting

Print lines with specific character at nth position in a file

I need to print lines with character S at nth position in a file...can someone pl help me with appropriate awk command for this (1 Reply)
Discussion started by: manaswinig
1 Replies

8. Shell Programming and Scripting

Print lines with specific character at nth position in a file

I need to print lines with character S at nth position in a file...can someone pl help me with appropriate awk command for this (2 Replies)
Discussion started by: manaswinig
2 Replies

9. Shell Programming and Scripting

how to find a position and print some string in the next and same position

I need a script for... how to find a position of column data and print some string in the next line and same position position should find based on *HEADER8* in text for ex: ord123 abs 123 987HEADER89 test234 ord124 abc 124 987HEADER88 test235 ... (1 Reply)
Discussion started by: naveenkcl
1 Replies

10. UNIX for Dummies Questions & Answers

How do I get the nth character from a string?

How to I get the nth character from a string in shell script. For instance, I have a string London. I want to get, say the first character (L) from the string. How do I do this in unix shell? Thankx (4 Replies)
Discussion started by: toughman
4 Replies
Login or Register to Ask a Question