Sponsored Content
Contact Us Post Here to Contact Site Administrators and Moderators Search for a pattern and replace a space at specific position with a Character in File Post 302992224 by Skrynesaver on Thursday 23rd of February 2017 04:24:01 AM
Old 02-23-2017
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:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

read space filled file and replace text at specific position

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... (6 Replies)
Discussion started by: COD
6 Replies

2. Shell Programming and Scripting

Print lines with specific character at nth position in a file

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 (2 Replies)
Discussion started by: manaswinig
2 Replies

3. Shell Programming and Scripting

Print lines with specific character at nth position in a file

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 (1 Reply)
Discussion started by: manaswinig
1 Replies

4. Shell Programming and Scripting

Insert character in a specific position of a file

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 (1 Reply)
Discussion started by: gpaulose
1 Replies

5. Shell Programming and Scripting

Using sed to replace specific character and specific position

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. (5 Replies)
Discussion started by: programmer22
5 Replies

6. Shell Programming and Scripting

position specific replace in file

How to replace the position specific values in the file.. i searched a lot the forums but i couldn't able to do... i have file like below 576666666666666666666666666 7878 897987 121 0asdas Y12 5900fbb 777 09JJJ 78798347892374 234234234364 234232898 89HJHIHIGIUG989902743748327khjkhkjlh... (6 Replies)
Discussion started by: greenworld123
6 Replies

7. Emergency UNIX and Linux Support

Replace nth position character of all the lines in file

I want to replace 150th character of all the lines in a file using sed or awk... searched the forums but didn't find exact answer (9 Replies)
Discussion started by: greenworld123
9 Replies

8. Shell Programming and Scripting

Find character and Replace character for given position

Hi, i want find the character '-' in a file from position 284-298, if it occurs i need to replace it with 'O ' for the position in the file. How to do that using SED command. thanks in advance, Sara (9 Replies)
Discussion started by: Sara183
9 Replies

9. Shell Programming and Scripting

Search for a string at a particular position and replace with blank based on position

Hi, I have a file with multiple lines(fixed width dat file). I want to search for '02' in the positions 45-46 and if available, in that lines, I need to replace value in position 359 with blank. As I am new to unix, I am not able to figure out how to do this. Can you please help me to achieve... (9 Replies)
Discussion started by: Pradhikshan
9 Replies

10. Shell Programming and Scripting

Count specific character of a file in each line and delete this character in a specific position

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)... (10 Replies)
Discussion started by: teokon90
10 Replies
strfmon(3C)															       strfmon(3C)

NAME
strfmon - convert monetary value to string SYNOPSIS
Remarks The ANSI C "" construct denotes a variable length argument list whose optional [or required] members are given in the associated comment DESCRIPTION
The function places characters into the array pointed to by s as controlled by the string pointed to by format. No more than maxsize bytes are placed into the array. The format is a character string that contains two types of objects: plain characters, which are simply copied to the output, and conver- sion specifications, each of which results in the fetching of zero or more arguments that are converted and formatted. The arguments are of type see the section for details. The results are undefined if there are insufficient arguments for the format. If the format is exhausted while arguments remain, the excess arguments are ignored. A conversion specification is the string flag]...[field_width][right_precision] conversion_character Each element of the sequence is specified as follows: Flags One or more of the following optional flags can be specified to control the conversion: An (equal sign) followed by a single character f which is used as the numeric fill character. The fill character must be repre- sentable in a single byte in order to work with precision and width counts. The default numeric fill character is the space character. This flag does not affect field width filling which always uses the space character. This flag is ignored unless a left precision (see below) is specified. Do not format the currency amount with grouping characters. The default is to insert the grouping characters if defined for the current locale. Specify the style for representing positive and negative currency amounts. Only one of or (plus sign or left parenthesis) may be specified. If is specified, the locale's equivalent of + and - are used (for example, in the locale: an empty string if positive and - if negative). If is specified, negative amounts are enclosed within parentheses. If neither flag is specified, the style is used. Suppress the currency symbol from the output conversion. A minus sign specifying the alignment. If this flag is present all fields are left-justified (padded to the right) rather than right-justified. Field Width w A decimal digit string w specifying a minimum field width in bytes in which the result of the conversion is right-justified (or left-justified if the flag - is specified). The default is zero. Left Precision A followed by a decimal digit string n specifying a maximum number of digits expected to be formatted to the left of the radix character. This option can be used to keep the formatted output from multiple calls to the aligned in the same columns. It can also be used to fill unused positions with a special character as in $***123.45. This option causes an amount to be formatted as if it has the number of digits specified by n. If more than n digit positions are required, this conversion specification is ignored. Digit positions in excess of those actually required are filled with numeric fill character (see the flag above). If grouping has not been suppressed with the flag, and it is defined for the current locale, grouping separators are inserted before the fill characters (if any) are added. Grouping separators are not applied to fill characters even if the fill character is a digit. To ensure alignment, any characters appearing before or after the number in the formatted output such as currency or sign symbols are padded as necessary with space characters to make their positive and negative formats an equal length. Right Precision A period followed by a decimal digit string p specifying the number of digits after the radix character If the value of the right precision p is zero, no radix character appears If a right precision is not included, a default specified by the current locale is used The amount being formatted is rounded to the specified number of digits prior to formatting. Conversion Characters The conversion characters and their meanings are: The argument is formatted according to the locale's international currency format (for example, in the locale: The argument is formatted according to the locale's national currency format (for example, in the locale: Convert to a no argument is converted. The entire conversion specification must be %%. Notes The behavior of the function in a UNIX 2003 conforming application differs from its behavior in a non-conforming application. With the conversion character the function uses the fourth character of the string defined in of the current locale instead of a space as a separa- tor for separating different items in a monetary quantity as dictated by the values of and Only the first three characters will be taken as the currency symbol. As a result, the formatting of internationally formatted monetary quantities may change. EXTERNAL INFLUENCES
Locale The category of the program's locale affects the behavior of this function including the monetary radix character (which may be different from the numeric radix character affected by the category), the grouping separator, the currency symbols and formats. RETURN VALUE
If the total number of resulting bytes including the terminating null byte is not more than maxsize, the function returns the number of bytes placed into the array pointed to by s, not including the terminating null byte Otherwise, -1 is returned, the contents of the array are indeterminate, and errno is set to indicate the error. ERRORS
The function will fail if: Conversion stopped due to lack of space in the buffer. EXAMPLES
The following program segment formats the monetary value using the locale with a left precision of and as the fill character. char string[31]; double amt = -4321.123; setlocale(LC_MONETARY, "en_US.roman8"); strfmon(string, 31, "The amount is %=*#5n.", amt); The string array will contain: The amount is -$*4,321.12. As an other example, given the locale of and the values and --------------------------------------------------------------------------- Conversion Output Comments Specification --------------------------------------------------------------------------- %n $123.45 default formatting -$123.45 $3,456.78 --------------------------------------------------------------------------- %11n $123.45 right align within an 11 character field -$123.45 $3,456.78 --------------------------------------------------------------------------- %#5n $ 123.45 align columns for values up to 99,999 -$ 123.45 $ 3,456.78 --------------------------------------------------------------------------- %=*#5n $***123.45 specify a fill character -$***123.45 $*3,456.78 --------------------------------------------------------------------------- %=0#5n $000123.45 fill characters do not use grouping -$000123.45 even if the fill character is a digit $03,456.78 --------------------------------------------------------------------------- %^#5n $ 123.45 disable the grouping separator -$ 123.45 $ 3456.78 --------------------------------------------------------------------------- %^#5.0n $ 123 round off to whole units -$ 123 $ 3457 --------------------------------------------------------------------------- %^#5.4n $ 123.4500 increase the precision -$ 123.4500 $ 3456.7810 --------------------------------------------------------------------------- %(#5n $ 123.45 use an alternative positive/negative style ($ 123.45) $ 3,456.78 --------------------------------------------------------------------------- %!(#5n 123.45 disable the currency symbol ( 123.45) 3,456.78 --------------------------------------------------------------------------- AUTHOR
was developed by HP. SEE ALSO
localeconv(3C), thread_safety(5). STANDARDS CONFORMANCE
strfmon(3C)
All times are GMT -4. The time now is 05:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy