Visit Our UNIX and Linux User Community


Find the middle character from a string using sed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find the middle character from a string using sed
# 1  
Old 08-22-2010
Find the middle character from a string using sed

Input:
Code:
qwertmyuiop

It should print "m".
What's the command to do this with sed?
# 2  
Old 08-22-2010
Code:
$ echo qwertmyuiop | sed ':a;s/.\(.*\)./\1/;ta'
m

or
Code:
sed -e ':a' -e 's/.\(.*\)./\1/;ta'


Last edited by Scrutinizer; 08-22-2010 at 03:38 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 08-22-2010
Quote:
Originally Posted by Scrutinizer
Code:
$ echo qwertmyuiop | sed ':a;s/.\(.*\)./\1/;ta'
m

or
Code:
sed -e ':a' -e 's/.\(.*\)./\1/;ta'

Could you please explain these command?
(:a and ;ta) how are those use?
# 4  
Old 08-22-2010
:a is a label ( label "a" )

ta means jump to label a is the previous command was successfull (if the s command managed to do a replacement)

So this creates a loop where after each iteration the outer two characters are removed until only the center character is left if there are an odd number of characters...
This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 08-22-2010
Code:
echo "qwertmyuiop" |awk 'BEGIN{FS=OFS=""}{print $(NF/2+1)}'

This User Gave Thanks to rdcwayx For This Post:
# 6  
Old 08-22-2010
Code:
# x=$(expr $(echo qwertmyuiop | wc -c) / 2) ; sed "s/ */\n/$x" al | sed -n '2s/^\(.\).*/\1/p'
m

# 7  
Old 08-23-2010
Code:
s="qwertmonyuiop"
echo ${s:((${#s}/2)):1}


Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed searches a character string for a specified delimiter character, and returns a leading or traili

Hi, Anyone can help using SED searches a character string for a specified delimiter character, and returns a leading or trailing space/blank. Text file : "1"|"ExternalClassDEA519CF5"|"Art1" "2"|"ExternalClass563EA516C"|"Art3" "3"|"ExternalClass305ED16B8"|"Art9" ... ... ... (2 Replies)
Discussion started by: fspalero
2 Replies

2. 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

3. Shell Programming and Scripting

Find last occurrence of a character in a string

Hello how to find last occurence of a string for example in the following I want last occurence of '-' i.e. position 12 str="aa-bbb-cccc-ddd-ee" my pupose is to get the string 'ee' Thanks and Regards Chetanz (5 Replies)
Discussion started by: Chetanz
5 Replies

4. Shell Programming and Scripting

Find string in a file and append character

Hi Experts, Is there a way to find a string in a file then append a character to that string then save the file or save to another file. Here is an example. >cat test.txt NULL NULL NULL 9,800.00 NULL 1,234,567.01 I want to find all NON NULL String and add a dollar sign to those... (9 Replies)
Discussion started by: brichigo
9 Replies

5. Shell Programming and Scripting

Using sed to find text between a "string " and character ","

Hello everyone Sorry I have to add another sed question. I am searching a log file and need only the first 2 occurances of text which comes after (note the space) "string " and before a ",". I have tried sed -n 's/.*string \(*\),.*/\1/p' filewith some, but limited success. This gives out all... (10 Replies)
Discussion started by: haggismn
10 Replies

6. Shell Programming and Scripting

Find index of last occurence of a character within a string

I need to find the index of last '|' (highlighted in bold) in awk : |ifOraDatabase.Lastservererr<>0then|iferr_flag<>0then|end if Please suggest a way... Thanks (5 Replies)
Discussion started by: joyan321
5 Replies

7. Shell Programming and Scripting

To find a character immediately following a specified String

Hello, I have a UNIX file in which data is like this -- ISA*00* *00* *01*006415160 *01*137361242 ... (3 Replies)
Discussion started by: The Observer
3 Replies

8. UNIX for Dummies Questions & Answers

Find and replace character in a string

Hi all, My problem is the following: I've a script that must list all files in a directory and write this information in a text file. I've tried to get the list through ls command and then write it using msgecho msgecho "`ls $PATH_APS_JOB_ORA`" This works good but the created string... (7 Replies)
Discussion started by: callimaco0082
7 Replies

9. Shell Programming and Scripting

replace first character of string sed

I want to change the first/or any character of a string to upper-case: String: test Desired results: Test or tEst or teSt or tesT thanks (6 Replies)
Discussion started by: prkfriryce
6 Replies

10. Shell Programming and Scripting

Problem to add the string(without sed & awk) into the middle of file

Hi, I have tried many times to add the string into the first line of the file or the middle of the file but could not find the solution. I first tried by $echo "paki" >> file This code only append paki string at the end of file "file" but how can i add this "paki" into the first line or... (5 Replies)
Discussion started by: ali hussain
5 Replies

Featured Tech Videos