How do you preserve the max length of a line after replacing a specific value?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How do you preserve the max length of a line after replacing a specific value?
# 1  
Old 11-21-2019
How do you preserve the max length of a line after replacing a specific value?

I'm new with scripting and I can't seem to figure out what I should do to get the output that I want.

My file content would be below.
Code:
ID2|ID3       |ID4|ID5       |

I'm trying to replace the field of ID3 which has a fixed length of 10 characters, for each entry I have placed on a .txt file and placing the value on variable called "NEW".

Here is my sed command.
Code:
sed -i 's/ID3/$NEW/g' TESTFILE_TEST

Is there anyway to maintain the 10 characters on the field for each entry it reads on my .txt file?

Last edited by Scrutinizer; 11-22-2019 at 05:00 AM.. Reason: code tags please
# 2  
Old 11-21-2019
Not sure I understand. You can't preserve a 10 char length for a field that is three (four if you count the space) chars in length. What be the length of $NEW?
# 3  
Old 11-21-2019
Hi RudiC,

Apologies I updated my question.

The value that will be placed on $NEW will not be greater than 10, it could be a character value of 5 but the segment where ID3 is placed will still remain 10 characters. Including the spaces.
# 4  
Old 11-21-2019
Please edit your post #1 and wrap your sample in CODE tags! (Click on the symbol that looks like </>)
# 5  
Old 11-22-2019
Try (assuming you want to fill up with spaces)

Code:
$ SPC="          "
$ sed  "s/ID3/$NEW${SPC:${#NEW}}/g" file

# 6  
Old 11-22-2019
Include the existing trailing spaces in order to replace(=remove) them:
Code:
s/ID3 */$NEW${SPC:${#NEW}}/

A variant with printf:
Code:
sed -i "s/ID3 */$(printf "%-10s" "$NEW")/" TESTFILE_TEST

This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find max length of the field and then replace zero

hai guys, pick the 1st field and calculate max length. if suppose max length is 2, then compare the all records if <2 then add zero's prefix of the record. for ex: s.no,sname 1,djud 37,jtuhe in this max length of the 1st field is 2 right the output wil be s.no,sname 01,djud... (6 Replies)
Discussion started by: Suneelbabu.etl
6 Replies

2. Shell Programming and Scripting

SED Replacing all but one regex match on a line or specific matches

Hi, I'm attempting to rename some files that have spaces in them. Without linking sed commands together is it possible to replace the first three "." to " ". File.name.is.long.ext -> File name is long.ext I can get the desired effect with echo "File.name.is.long.ext" | sed 's/\./ /g;s/... (5 Replies)
Discussion started by: vectox
5 Replies

3. UNIX for Dummies Questions & Answers

Modify the max username length

Hey Any one... Do u know any way I can modify the max username length in unix? I guess it is 32/64 characters by default. Suppose I want to increase it to 128. i hav tried /etc/skel but no use... How can I do that? (2 Replies)
Discussion started by: MayureshRisbud
2 Replies

4. UNIX for Advanced & Expert Users

How to increase max username length?

Hi, This is my first post to this site. So kindly forgive if I am writing in a wrong section. My query is that... I want to modify the max username length size. I guess it is 32/64 on CentOS. Now I want to change it to 128. Is there any way to do that? Thanks in advance!! :) (4 Replies)
Discussion started by: ajay303
4 Replies

5. Shell Programming and Scripting

replacing field in specific line in a file

Hi, I know there are lots of threads on replacing text within files, usually using sed or awk. However, I find it hard to adapt examples that I found to my specific case. I am kind of new to UNIX and have hard times learning the syntax either for sed or awk so I would appreciate any help. Here's... (5 Replies)
Discussion started by: vytenis
5 Replies

6. UNIX for Dummies Questions & Answers

replacing string in a column on a specific line

hi, i currently have a file with columns similar to this customer name owed CID123 John 300 CID342 harry 500 at present i use use awk to find the amount owed by the customer using the customer ID (CID). if the customer spends more money how would i go about using sed/awk etc to... (2 Replies)
Discussion started by: skinnygav
2 Replies

7. Shell Programming and Scripting

Deleting Characters at specific position in a line if the line is certain length

I've got a file that would have lines similar to: 12345678 x.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 23456781 x.00 xx.00 xx.00 xx.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 34567812 x.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 45678123 x.00 xx.00 xx.00 xx.00 xx.00 x.00 xxx.00 xx.00 xx.00 xx.00 xx.00... (10 Replies)
Discussion started by: Cailet
10 Replies

8. Shell Programming and Scripting

Counting the max length of string

Hi all, I have a flat file of 1000 rows. I want to check the length of the 5th column. The one having the longest length , I want to set it as DEFINED PARAMETER. So later I can check others with that particular number only. Any ideas ?? (2 Replies)
Discussion started by: ganesh123
2 Replies

9. Shell Programming and Scripting

what is the max length of args i can pass in shell?

i have a shell script which takes several args. what is the maximum length of string i can give as argument? (6 Replies)
Discussion started by: senthilk615
6 Replies

10. UNIX for Dummies Questions & Answers

Length of a Unix filepath max length

Hi Guys, Could anyone shed some light on the length of a Unix filepath max length pls ? thanks ! Wilson (3 Replies)
Discussion started by: wilsontan
3 Replies
Login or Register to Ask a Question