Today (Saturday) We will make some minor tuning adjustments to MySQL.

You may experience 2 up to 10 seconds "glitch time" when we restart MySQL. We expect to make these adjustments around 1AM Eastern Daylight Saving Time (EDT) US.


Search for a pattern and replace a space at specific position with a Character in File


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Search for a pattern and replace a space at specific position with a Character in File

In file, we have millions of records each of 1000 in length. And at specific position say 800 there is a space, we need to replace it with Character X if the ID in that row starts with 123.

So far i have used the below which is replacing space at that position to X but its not checking for records which have ID as 123.

Code:
awk '
    function repl(s,f,t,v)
    {
        return substr(s,1,f-1) sprintf("%-*s", t-f+1, v) substr(s,t+1)
    }

    {
        a=repl($0,800,800,"X")
        print a
    }
' infile


Thanks


Moderator's Comments:
Mod Comment Use code tags, thanks.

Last edited by zaxxon; 02-23-2017 at 03:31 AM.. Reason: code tags and indention
# 3  
Thanks for your script. After execution just .bak file got created and space remained as it is i.e. no replacement with X.

Could you pls have a look.
# 4  
Code:
$ cat test.file
123andsomeothervalues with a space at position 22
Not 123 but with the  space
123 but no spacein the appropriate column

$ perl -npi.bak -e 's/^(123.{18}) /$1X/' test.file

$ cat test.file
123andsomeothervaluesXwith a space at position 22
Not 123 but with the  space
123 but no spacein the appropriate column

If the space is in position 800, then there a 799 characters before it not 800 so the quantifier should be 796 ie:
Code:
perl -npi.bak -e ' s/(123.{796}) /${1}X/' infile

Perhaps my ability to count was compromised by a dangerous caffeine deficiency, currently remedying this cU.
This User Gave Thanks to Skrynesaver For This Post:
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Count specific character of a file in each line and delete this character in a specific position
teokon90
I will appreciate if you help me here in this script in Solaris Enviroment. Scenario: i have 2 files : 1) /tmp/TRANSACTIONS_DAILY_20180730.txt: 201807300000000004 201807300000000005 201807300000000006 201807300000000007 201807300000000008 2)...... Shell Programming and Scripting
10
Shell Programming and Scripting
Using sed to replace specific character and specific position
programmer22
I am trying to use sed to replace specific characters at a specific position in the file with a different value... can this be done? Example: File: A0199999123 A0199999124 A0199999125 Need to replace 99999 in positions 3-7 with 88888. Any help is appreciated.... Shell Programming and Scripting
5
Shell Programming and Scripting
Insert character in a specific position of a file
gpaulose
Hi, I need to add Pipe (|) at 5th and 18th position of all records a file. How can I do this? I tried to add it at 5th position using the below code. It didnt work. Please help!!! awk '{substr($0,5,1) ~ /|/}{print}' $input_file > $temp_file... Shell Programming and Scripting
1
Shell Programming and Scripting
Print lines with specific character at nth position in a file
manaswinig
I need to print lines with character S at nth position in a file...can someone pl help me with appropriate awk command for this... Shell Programming and Scripting
2
Shell Programming and Scripting
read space filled file and replace text at specific position
COD
Hi I have a spaced filled file having records like below: What I want is to read line having RT3 at position 17-19 then go to position 2651 check the 18 characters (might be space filled till 18 characters). This position should have a...... Shell Programming and Scripting
6
Shell Programming and Scripting

Featured Tech Videos