create fil23456 read on 3345
create fil23456_1 read on 34567
create fil23456_2 read on 36789
I'm trying to replace the lines in such a way that in the end the file will look like
create fil23456 read on 3345
alter fil23456 read on 34567
alter fil23456 read on 36789
I would like to replace the occurrences of _1, _2 (this can be many so i cant hardcode saying _1 and _2)
I tried some of the sed, but couldnt succed (it is removing _ but not the 1s and 2s, then other one is reomving everything before _)
Can someone please help.
Hello there,
I think that the following KornShell script does the job
Code:
#!/bin/ksh
function substring
{
TOKEN=$1
LENGTH=${#TOKEN}
COUNTER=0
typeset -L1 CURRENT_CHARACTER
RESULT=""
while (( COUNTER < LENGTH ))
do
CURRENT_CHARACTER=$TOKEN
if [[ $CURRENT_CHARACTER = "_" ]]
then
if (( (COUNTER + 1) < LENGTH ))
then
if [[ ${TOKEN#?} = [0-9] ]]
then
print "$RESULT"
fi
else
RESULT="$RESULT$CURRENT_CHARACTER"
fi
else
RESULT="$RESULT$CURRENT_CHARACTER"
fi
(( COUNTER = COUNTER + 1 ))
TOKEN=${TOKEN#?}
done
}
INPUT_FILE=$1
OUTPUT_FILE=$1_temp
if [[ -a $OUTPUT_FILE ]]
then
rm $OUTPUT_FILE
fi
cat $INPUT_FILE > $OUTPUT_FILE
while read LINE
do
for TOKEN in $LINE
do
if [[ $TOKEN = *_[0-9] ]]
then
print -n "$(substring $TOKEN) "
else
print -n "$TOKEN "
fi
done
print ""
done < $INPUT_FILE > $OUTPUT_FILE
I tested it with the following input file:
Code:
create fil23456 read on 3345
create fil23456_1 read on 34567
create fil23456_2 read on 36789
create fil11111_ read on 36789
create fil22222_5 read on 36789
Which provided the following putput
Code:
create fil23456 read on 3345
create fil23456 read on 34567
create fil23456 read on 36789
create fil11111_ read on 36789
create fil22222 read on 36789
I have statement like this
column_id.columnname=="value"
in unix i want to modify above statement to
variable1=="value"
that means i have to replace the string before "==" by string "variable1"
second catch is, in statement instead of "==" you can have any arithmatic comarision... (7 Replies)
Hi
I am trying to find a product code hightlighted in red, and re-insert it at another place on the same file. I shall be grateful if anyone can help me with this. Stuck and have deadline!!:confused:
Original Line: (I can get source data in one of these two formats)
ISD=977155185403901+DIE... (2 Replies)
Hi,
There are some "n" files in a directory which contains comman string.A command to find and replace the string in all the files without looping.
like if i am in a directory :
# find ./ -name ".txt" | xargs sed -e 's/test/tst'
Upto here is performed correctly and i want to... (4 Replies)
hi,
i have a data in a file like below:
100 8388kmn844., 8488
200 8398kmn894., 8398
i want replace from kmn to . as null.
output should be
100 8388, 8488
200 8398, 8398
Plz help.
Thanks in advance (1 Reply)
I am looking to find and replace a string in a file, can anyone suggest a global find and replace. looked at previous replies on other queries but none seem to address what i am looking for. aint familiar with sed so trying to use ordinary unix commands if possible
Thanks in advance (2 Replies)
Need to convert
echo "7 6"
to
$7,$6
But the count of numbers can increase say echo "7,6,8,9" tried this didn't work
echo "7 6" | sed 's/\(*\)/\1/'
But did not help much (3 Replies)
Dear All
To find a file, according to you, I tried as:
#find / -name file-name -print
To find a string inside the files , I tried as :
#find / -name "*" |xargs grep "string"
Can you please let me know how can I try for find/replace (i.e.
finding the intended string inside the text files... (6 Replies)
I have the following requirement in the shell script
1. I have more than 200 shell script files. I need to find out how many shell scripts have "sqlplus /" in the shell file
2. I need to replace all the shell scripts in the single command
for example: connect scott/scott
replace as ... (6 Replies)
i am having a file test1.txt and its contents is as follows.
<abcaaa bbb ccc ddd>
<dddeeeffff>
<my computer>
<abcmydocuments>
Now I need to find the text abc and should be replaced as follows.
<abc>
<dddeeeffff>
<my computer>
<abc>
First line has the text "abc" and it has to be... (3 Replies)
Hi All,
I have data like below
1 CREATE TABLE temp123
2 (
3 col1 INTEGER,
4 col2 CHAR(3) CHARACTER SET LATIN NOT CASESPECIFIC,
5 col3 DECIMAL(19,0),
6 col4 VARCHAR(80) CHARACTER SET LATIN NOT CASESPECIFIC,
7 start_dt DAte FORMAT 'YY/MM/DD',
8 end_dt DATE FORMAT 'YY/MM/DD',
9 datecol1... (6 Replies)
Discussion started by: baranisachin
6 Replies
LEARN ABOUT LINUX
rbash
RBASH(1) General Commands Manual RBASH(1)NAME
rbash - restricted bash, see bash(1)RESTRICTED SHELL
If bash is started with the name rbash, or the -r option is supplied at invocation, the shell becomes restricted. A restricted shell is
used to set up an environment more controlled than the standard shell. It behaves identically to bash with the exception that the follow-
ing are disallowed or not performed:
o changing directories with cd
o setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
o specifying command names containing /
o specifying a file name containing a / as an argument to the . builtin command
o specifying a filename containing a slash as an argument to the -p option to the hash builtin command
o importing function definitions from the shell environment at startup
o parsing the value of SHELLOPTS from the shell environment at startup
o redirecting output using the >, >|, <>, >&, &>, and >> redirection operators
o using the exec builtin command to replace the shell with another command
o adding or deleting builtin commands with the -f and -d options to the enable builtin command
o using the enable builtin command to enable disabled shell builtins
o specifying the -p option to the command builtin command
o turning off restricted mode with set +r or set +o restricted.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed, rbash turns off any restrictions in the shell spawned to execute the script.
SEE ALSO bash(1)GNU Bash-4.0 2004 Apr 20 RBASH(1)