Help building a variable string from a keyword - character replacements!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help building a variable string from a keyword - character replacements!
# 8  
Old 02-21-2019
Here is one with bash:
Code:
#!/bin/bash
word=$1
len=${#1}
KEYWORD=$(
for ((i=1; i<=len; i++))
do
  for ((j=i+1; j<=len; j++))
  do
    # the following uses sed
    # echo "$word" | sed "s/./_/$i; s/./_/$j"
    # the following uses variable modifiers
    wrd=${word:0:i-1}_${word:i}
    echo "${wrd:0:j-1}_${wrd:j}"
  done
done
)
echo "$KEYWORD"
echo "in one row:"
(
  set -f
  echo $KEYWORD
)

This User Gave Thanks to MadeInGermany For This Post:
# 9  
Old 02-22-2019
Code:
#!/bin/bash
sed -rn '
:3
s/\w\B/&./; T
:1
s/([.;]\w)(\B|$)/&,/; h
s/[; ]//g; s/\w\.|\w,/_/g; T2; p; g
s/,\b/;/; t1
:2
s/\./ /; s/[;,]//g; h; t3' <<<"domino"

# 10  
Old 02-22-2019
Quote:
Originally Posted by nezabudka
Code:
#!/bin/bash
sed -rn '
:3
s/\w\B/&./; T
:1
s/([.;]\w)(\B|$)/&,/; h
s/[; ]//g; s/\w\.|\w,/_/g; T2; p; g
s/,\b/;/; t1
:2
s/\./ /; s/[;,]//g; h; t3' <<<"domino"

Hello nezabudka,

Thanks a TON for providing nice solutions Smilie Request you to please do add explanation too in your post so that newcomers and OP's/members could understand it.
Moreover it completes our post too(solution + solution's details = GREAT answer Smilie )

Keep doing the GREAT work what you are doing now.

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 11  
Old 02-22-2019
Quote:
Originally Posted by RavinderSingh13
Hello nezabudka,

Thanks a TON for providing nice solutions Smilie Request you to please do add explanation too in your post so that newcomers and OP's/members could understand it.
Moreover it completes our post too(solution + solution's details = GREAT answer Smilie )

Keep doing the GREAT work what you are doing now.

Thanks,
R. Singh
The algorithm of the program is the following.
In the main loop by tag :3 we divide the string into letters, putting a dot in
each loop after the next letter
Code:
sed -rn ':3;s/\w\B/&./; h; s/\w\./_./p;g; s/\./,/; t3' <<<"domino"

_.omino
d,_.mino
d,o,_.ino
d,o,m,_.no
d,o,m,i,_.o

Create an internal loop to iterate a pair letter. As a secondary mark, select the semicolon
Code:
sed -rn 's/\w\B/&./; :1; s/([.;]\w)(\B|$)/&,/;h;s/\w\.|\w,/_/g;T;p;g;s/,\b/;/; t1' <<<"domino"

__mino
_o;_ino
_o;m;_no
_o;m;i;_o
_o;m;i;n;_

As a secondary mark in outer loop select the space. We build the inner loop into the outer loop.
Code:
sed -rn ':3; s/[a-z]\B/&./;T; :1; s/([.;]\w)(\B|$)/&,/;h;s/\w\.|\w,/_/g;T2;p;g;s/,\b/;/; t1;:2; s/\./ /; s/[;,]//g;h; t3' <<<"domino"

__mino
_o;_ino
_o;m;_no
_o;m;i;_o
_o;m;i;n;_
d __ino
d _m;_no
d _m;i;_o
d _m;i;n;_
d o __no
d o _i;_o
d o _i;n;_
d o m __o
d o m _n;_
d o m i __

It remains only to delete all marks and arrange the script in a readable style
Code:
#!/bin/bash
sed -rn '
:3
s/\w\B/&./; T
:1
s/([.;]\w)(\B|$)/&,/; h
s/[; ]//g; s/\w\.|\w,/_/g; T2; p; g
s/,\b/;/; t1
:2
s/\./ /; s/[;,]//g; h; t3' <<<"domino"

__mino
_o_ino
_om_no
_omi_o
_omin_
d__ino
d_m_no
d_mi_o
d_min_
do__no
do_i_o
do_in_
dom__o
dom_n_
domi__

I apologize for not being able to comment in more detail, I just can't find the right words
These 2 Users Gave Thanks to nezabudka For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash - Inserting non printable character(s) in string variable

Hello. I have a string variable named L_TEMP to test a very simple filter. L_TEMP="50AwL.|KWp9jk" I want to insert a non printable character between K and W. I have try this : linux-g65k:~ # a='50AwL.|K' linux-g65k:~ # b='Wp9jk' linux-g65k:~ # L_TEMP="$a$'\x07'$b" linux-g65k:~ # echo... (6 Replies)
Discussion started by: jcdole
6 Replies

2. Shell Programming and Scripting

Search for a Keyword in file and replace another keyword or add at the end of line

Hi I want to implement something like this: if( keyword1 exists) then check if(keyword2 exists in the same line) then replace keyword 2 with New_Keyword else Add New_Keyword at the end of line end if eg: Check for Keyword JUNGLE and add/replace... (7 Replies)
Discussion started by: dashing201
7 Replies

3. Shell Programming and Scripting

Remove not only the duplicate string but also the keyword of the string in Perl

Hi Perl users, I have another problem with text processing in Perl. I have a file below: Linux Unix Linux Windows SUN MACOS SUN SUN HP-AUX I want the result below: Unix Windows SUN MACOS HP-AUX so the duplicate string will be removed and also the keyword of the string on... (2 Replies)
Discussion started by: askari
2 Replies

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

5. UNIX for Advanced & Expert Users

couting occurences of a character inside a string and assigning it to a variable

echo "hello123" | tr -dc '' | wc -c using this command i can count the no of times a number from 0-9 occurs in the string "hello123" but how do i save this result inside a variable? if i do x= echo "hello123" | tr -dc '' | wc -c that does not work...plz suggest..thanks (3 Replies)
Discussion started by: arindamlive
3 Replies

6. Shell Programming and Scripting

How to change last character in string with a variable value.

Hey Guys, I have text such as this. 28003,ALCORN,2 28009,BENTON,2 28013,CALHOUN,2 28017,CHICKASAW,2 47017,CARROLL,2 05021,CLAY,0 The last digit after the final "," is a variable value. This is the base file. I have to do further execution on this file later and I need to update the... (7 Replies)
Discussion started by: chagan02
7 Replies

7. Shell Programming and Scripting

Delete first character from a string stored in a variable

Hallo! Example. #!/bin/bash BACKUP_DIR=/home/userx/backups/evolution echo $BACKUP_DIR # delete the first character from the string BACKUP_DIR=$(echo $BACKUP_DIR | cut -c 2-) echo $BACKUP_DIR It works. It does want I want, delete the first character from string in the... (11 Replies)
Discussion started by: linuxinho
11 Replies

8. Shell Programming and Scripting

How to remove the first character on a string in a variable

Hi all, Does anyone know how to code in ksh that will remove the first character in a string variable and replace that variable without the first character? Example: var1=ktest1 will become var1=test1 var2=rtest2 will become var2=test2 Need help please. (10 Replies)
Discussion started by: ryukishin_17
10 Replies

9. Shell Programming and Scripting

read and assign each character from the string to a variable

How... can I read input by a user character by cahracter. And assign each character from the string to a variable? Any help would be greatly appreciated! Thank you! (1 Reply)
Discussion started by: Tek-E
1 Replies

10. Shell Programming and Scripting

Match keyword on string and substitute under vi

Hi guys, with sed when I need to make a substitution inside a line containing a specific keyword, I usually use: sed '/keyword/ s/cat/dog/g' This will substitute "cat" with "dog" on those lines containing "keyword". Now I want to use this inside vi, for several reason that I cannot... (2 Replies)
Discussion started by: lycaon
2 Replies
Login or Register to Ask a Question