sed - how to create all possible variations of name combinations [closed] - sed

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 5 years ago.
Improve this question
I cannot seem to find a clever way of creating all possible variations of name combinations.
Input (multiple names put together where each name is represented as a letter):
ABC (e.g. JohnPeterSarah)
pattern space: Replaces A with 1, B with 2 and C with 3 (among other -that's where you come in)
Desired Output
ABC
A2C
A23
AB3
1BC
12C
1B3

sed is not the most natural tool for this task. Try bash's brace expansion:
$ printf "%s\n" {A,1}{B,2}{C,3}
ABC
AB3
A2C
A23
1BC
1B3
12C
123

Its not clear what you are trying to do here but it sounds like you want all permutations of a string. The best way to do that is using recursion. This question was already addressed here.

Related

Perl Split Operator [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 2 months ago.
Improve this question
I have a large text file of records each beginning with 22-. I want to read in the file and split it up into an array with one record per element. Looks like I will lose the 22- at the beginning of each element. Is there a way to split it without losing the 22-? I suppose after the split I could add the 22- back to the beginning of each element.
I haven't coded it yet
With split, you specify the separator. 22- is not a separator, but part of the record.
You can still use split by separating on the zero-width space that's followed by 22-.
split /(?=22-)/

Find and replace multiple string in MATLAB [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 1 year ago.
Improve this question
I have a1 in the following form in MATLAB.
a1{1,1} = {'x1','x2','x3'}
a1{1,2} = {'x1','x2','x3','x4'}
a1{1,3} = {'x4'}
I need to replace
'x1' with 'Text1'
'x2' with 'Text2'
'x3' with 'Text3'
'x4' with 'Text4'
I have tried a couple of things with no success and I am a bit lost, does anyone have any ideas.
Thanks
Regular Expressions might be a way to go with this
a1{1,1} = {'x1','x2','x3','x4'};
a1{1,1} = regexprep(a1{1,1},'x([0-9])','text$1');
Will result in a1{1,1} containing
{'text1'} {'text2'} {'text3'} {'text4'}
This will work for any single digit numerical value (0-9) that is prefixed with the letter x.

Could you please tell me what this line do: sed 's/^.*-svn\([0-9]*\).*$/\1/' [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 years ago.
Improve this question
Could you please tell me what this line do of sed
the expression is on the title
Thank you
Best regards
It replaces everything on the line with the number immediately following "-svn".
eg.:
blahblabhlabhlabhalbh-svn12345blahblhablhab
is replaced by:
12345
It's matching a string of [anything]-svn[numbers][anything], and replacing the line with the [numbers].
For example:
asda-svn123123bebeb
Gets replaced with
123123

How to keep a specific set of characters from a string using regular expression in PERL [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 years ago.
Improve this question
I have this string
$eq= "ew';##rfhnbgsu.,/><hdjsdedokk";
By Perl I want to extract just the characters w, h, n, s, and f from the string.
The output should be like this
whhfnss
Could you help me?
say $s =~ /[whnsf]/g;

Sed: print 2 lines before a match [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
I need to print the two previous lines before matches inside a file (for any match)
How to make it?
Thank you
The script:
sed -n "1N;2N;/XXX[^\n]*$/{h;s/\n[^\n]*$//;p;g};N;D"
works as follows:
Read the first three lines into the pattern space, 1N;2N
Search for the test string XXX in the last line, and if found: save pattern space in hold space h, delete last line s, print p, and then restore saved string g
Append the next line input to pattern space, N
Delete first line from pattern space and restart cycle, D, noting that 1N;2N is no longer applicable
See also similar SED: addressing two lines before match.
If you do not insist on using sed, use
grep -B 2