Visit Our UNIX and Linux User Community


How to find the string which is starting with some letters and having numbers from 4th position?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to find the string which is starting with some letters and having numbers from 4th position?
# 1  
Old 03-19-2020
How to find the string which is starting with some letters and having numbers from 4th position?

How to find the string which is starting with ROS and having numbers from 4th position
For example: I have strings as below
Code:
string1 :ROSE543
string2 :ROS543
string3 :ROS54SQD
string4 :ROSEFLOWER
string5 :FLOWERROSE

here i have to know the string starts with ROS and from 4th position to till the end (n numbers) it having only numbers.
Note: these strings will be passed as a variable and i'm using ksh.

Result should be: ROS543 (because it is starting with ROS and from 4th position to end having only numbers)

Can someone help me to get this result?
Thanks in advance!!!

Last edited by Yoda; 04-03-2020 at 11:37 AM..
# 2  
Old 03-19-2020
What ksh version do you have?

man ksh93 :
Quote:
string =~ ere
True if string matches the pattern ~(E)ere where ere is an extended regular expression.


Try
Code:
[[ $string2 =~ ROS[0-9]*$ ]] && echo OK || echo NOK
OK

# 3  
Old 03-19-2020
Of course it is

Code:
[[ $string2 =~ ROS[0-9]+$ ]] && echo OK || echo NOK

Minimum one digit.
This User Gave Thanks to MadeInGermany For This Post:
# 4  
Old 03-31-2020
Thanks for the answer :-)



I tried the below code and got error.
CODE :

a=sss2345
set -x
if [[ ( $a =~ sss[0-9]*$ ) ]]; then
echo "4th position is num"
else
echo "4th position is not num"
fi




ERROR : Syntax error at line 3 : `=~' is not expected.



ERROR:
Syntax error at line 3 : `=~' is not expected.
# 5  
Old 04-02-2020
Looks like your shell version doesn't provide that construct. What is it?
# 6  
Old 04-02-2020
Obviously ksh88 - that knows [[ ]] but not its =~ operator.
Is it possible to use bash instead?
# 7  
Old 04-03-2020
In ksh88 (and bash) you can emulate
Code:
f [[ ( $a =~ sss[0-9]*$ ) ]]

with
Code:
if [[ $a == *sss* ]] && [[ ${a##*sss} != *[!0-9]* ]]

And
Code:
f [[ ( $a =~ ^sss[0-9]*$ ) ]]

with
Code:
if [[ $a == sss* ]] && [[ ${a#sss} != *[!0-9]* ]]

This User Gave Thanks to MadeInGermany For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #89
Difficulty: Easy
Software management applications like the Ubuntu Software Center are front-ends to the core terminal commands use to install and manage software applications.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find a string and its position in a line from another string

Hello guys, would you please help me with this? this is the line inside a file: first line Something Today YYDDPPSVXIPYYY0XXXOFFS00000000000? I'd like to find the position of string XXX from string PYYY In the example above XXX starts from 6th position from PYYY desired... (4 Replies)
Discussion started by: netrom
4 Replies

2. UNIX for Beginners Questions & Answers

Decimal numbers and letters in the same collums: round numbers

Hi! I found and then adapt the code for my pipeline... awk -F"," -vOFS="," '{printf "%0.2f %0.f\n",$2,$4}' xxx > yyy I add -F"," -vOFS="," (for input and output as csv file) and I change the columns and the number of decimal... It works but I have also some problems... here my columns ... (7 Replies)
Discussion started by: echo manolis
7 Replies

3. Shell Programming and Scripting

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... (2 Replies)
Discussion started by: Jonty Immortal
2 Replies

4. Shell Programming and Scripting

awk : match only the pattern string , not letters or numbers after that.

Hi Experts, I am finding difficulty to get exact match: file OPERATING_SYSTEM=HP-UX LOOPBACK_ADDRESS=127.0.0.1 INTERFACE_NAME="lan3" IP_ADDRESS="10.53.52.241" SUBNET_MASK="255.255.255.192" BROADCAST_ADDRESS="" INTERFACE_STATE="" DHCP_ENABLE=0 INTERFACE_NAME="lan3:1"... (6 Replies)
Discussion started by: rveri
6 Replies

5. UNIX for Dummies Questions & Answers

Find the list of filenames that have the string 31 at 4th and 5th position

Hi, Can anyone let me know the command to know the list of filenames that have string 31 in their 4th and 5th positions inside the file: grep -l "31" main*.txt The above grep lists all the files which have 31 at any position but I want filenames having 31 at position 4 and position 5. (8 Replies)
Discussion started by: okkadu
8 Replies

6. Shell Programming and Scripting

Find the starting position in a file

I have a file called "INPUT" which takes the following format MNT-BANK-NUMBERO:006,00:N MNT-100-ACCOUNT-NUMBERO:018,00:N MNT-1000-DESCRIPTIONO:045:C . . . Now i got to find the displacements of the account numbers of each field of a file. For the field MNT-BANK-NUMBERO:006,00:N, the... (4 Replies)
Discussion started by: bobby1015
4 Replies

7. Shell Programming and Scripting

Find the position of lines matching string

I have a file with the below format, GS*8***** ST*1******** A* B* E* RMR*123455(This is the unique number to locate this row) F* SE*1*** GE** GS*9***** ST*2 H* J* RMR*567889(This is the unique number to locate this row) L* SE* GE***** (16 Replies)
Discussion started by: Muthuraj K
16 Replies

8. Shell Programming and Scripting

Find the position of a string and replace with another string

Hi, I have a file named "Test_2008_01_21" The file contains a string "manual" that occurs many times in the file How can i find the positions of the string "manual" in the file Ex: if the string " manual " occurs three times in the file. i want to replace the second occurance of string... (6 Replies)
Discussion started by: bab123
6 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. Shell Programming and Scripting

how to find substring position in a given string

Hello, I have a string like str = "14: Jan 29 13:27:12 : Processor----: : Start of splitting file " from this, i have to find the position or location number starting for "Processor". I have to extract date from this entire string. string which i will give will not have fixed length. ... (2 Replies)
Discussion started by: balareddy
2 Replies

Featured Tech Videos