Here is a hack with sed.
The \(\([^|]*|\)\{10\}X*\) matches the first 10 fields plus already substituted Xes in field 11, and is put back as \1.
The 4 digit look-ahead \([0-9]\{4\}\) is put back as \3.
The one [0-9] is really substituted by the X.
The whole thing repeats in a loop, until nothing is left that can be substituted. (A /g option does not work because it cannot repeat on anything before the last matched character i.e. the look-ahead.)
A solution with awk or perl or bash would look simpler, because you can split on "|" and only work on field 11.
I know how to do it in Oracle (like below), however client need in shell script.
Depending on what the rest of the shell script looks like (and, most prominently, WHICH SHELL YOU ARE USING - you might have considered telling us) you can do it with variable expansion. Here is a solution in Korn shell, i haven't tested it in bash,but it should work there too (replace "print" with "echo" then):
The function does not cover for bank-account-numbers being 4 digits or shorter (or otherwise malformed). If this could be the case you will have to provide extra logic.
I hope this helps.
bakunin
These 2 Users Gave Thanks to bakunin For This Post:
Here comes a bash script, using a short version of bakunin's function and a print function. (The shell is lacking a builtin join function. Gives me the chance to demonstrate the power of a custom function.)
Last edited by MadeInGermany; 09-12-2018 at 06:20 AM..
Hi,
Can anyone suggest me for the below steps.
Here the index files is nothing but a text file and In index file there are n number of pdf files.
Step 0 check out if this is for A(index file) or B(index file)
1. Read the first line of the original index file
2. Read the 9th character... (1 Reply)
HI all,
I have output of something like this:
crab: ExitCodes Summary
>>>>>>>>> 12 Jobs with Wrapper Exit Code : 50117
List of jobs: 1-12
See https:///twiki/something/ for Exit Code meaning
crab: ExitCodes Summary
>>>>>>>>> 5 Jobs with Wrapper Exit Code : 8001
List of... (20 Replies)
please help me write a perl program to find the difference of 1 and zeros of a 6 digit binary number.
eg If input is 111100 expected output +2
if input is 000011 expected output -2
input is 000111 expected output 0 (2 Replies)
Hi All,
I have a file of decimal numbers,
cat file1.txt
1.1382666907
1.2603107334
1.6118799297
24.4995857056
494.7632588468
560.7633734425
.....
I want to see the output as only 7 digits after decimal (5 Replies)
Hi all
Can anybody suggest me, how to get the count of digits in a word
I tried
WORD=abcd1234
echo $WORD | grep -oE ] | wc -l
4
It works in bash command line, but not in scripts :mad: (12 Replies)
How is it possible under UNIX to restrain the number of digits of the PID number?
For instance, we have a product that generates a PID of 7 digits, and we would like to have only 6 digits maximum instead for the PID.
Thank you for your help. (1 Reply)