Strip leading and trailing spaces only in a shell variable with embedded spaces


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Strip leading and trailing spaces only in a shell variable with embedded spaces
# 1  
Old 03-07-2005
Bug Strip leading and trailing spaces only in a shell variable with embedded spaces

I am trying to strip all leading and trailing spaces of a shell variable using either awk or sed or any other utility, however unscuccessful and need your help.

echo $SH_VAR | command_line Syntax.

The SH_VAR contains embedded spaces which needs to be preserved. I need only for the leading and trailing spaces to be removed. If anyone has accomplished this before or knows a quick way to achieve this result please let me know

Thnx Smilie
# 2  
Old 03-07-2005
Code:
#!/bin/ksh

a=' abc de f    '

b=$(echo ${a} | sed -e 's/^ *//g;s/ *$//g')

echo "a->[${a}] b->[${b}]"

# 3  
Old 03-07-2005
delete leading whitespace (spaces, tabs)from begin of each line
Code:
sed 's/^[ \t]*//'

delete trailing whitespace (spaces, tabs)from end of each line
Code:
sed 's/[ \t]*$//'

try
Code:
sed 's/^[ \t]*//;s/[ \t]*$//' yourfilename

# 4  
Old 03-07-2005
Thank you for the sed version.
the

echo $var1 | sed 's/^[ \t]*//;s/[ \t]*$//' |& read -p var2

strips the leading and trailing spaces from the variable var1 and sets the output to the new variable var2.

Thank you. Smilie
# 5  
Old 03-07-2005
I have encountered an issue in my previous command.

The command works for a variable with a single space embedded in it.
However when you have more than one space in the variable value the command strips extrac spaces and leaves only one inside of the value.

Ex: a=' abc de f '

returns b='abc de f'

however if a=' abc de f '
returns b='abc de f'

Any suggesstions to overcome this issue would be much appreciated. Thanks
# 6  
Old 03-07-2005
We can extend vgersh99's code to handle this by adding a few double quotes...

Code:
#!/bin/ksh

a=' abc            de f    '

b=$(echo "${a}" | sed -e 's/^ *//g;s/ *$//g')

echo "a->[${a}] b->[${b}]"

# 7  
Old 03-07-2005
The double quotes did the trick. Thanks for your input.
Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to remove leading and trailing spaces for variable in shell script?

Hi I have variable named tablename. The value to tablename variable has leading and trailing white spaces. How to remove the leading and training white spaces and write the value of the tablename without space to a file using shell script. ( for e.g. tablename= yyy ) INPUT ... (10 Replies)
Discussion started by: pottic
10 Replies

2. Shell Programming and Scripting

Remove leading and trailing spaces from a file

Hi, I am trying to remove leading and trailing spaces from a file using awk but somehow I have not been able to do it. Here is the data that I want to trim. 07/12/2017 15:55:00 |entinfdev |AD ping Time ms | .474| 1.41| .581|green |flat... (9 Replies)
Discussion started by: svajhala
9 Replies

3. UNIX for Dummies Questions & Answers

Want to add trailing spaces to the variable

I want to keep string/varible length to 10 even its actual length is less than 10(may be no value). so, i want to add trailing spaces to my string. :wall: "typeset -L10 myvarible" is not working, its saying invalid typset -L option. Can you please advise. (4 Replies)
Discussion started by: djaks111
4 Replies

4. Shell Programming and Scripting

How to remove trailing spaces from a variable?

I am getting a value from a csv file using CUT command, however the command extracting the records with trailing spaces. I am using the result into a sql session to fetch data, because of the trailing spaces the sql session is unable to fetch any data. Please let me know, how to remove this... (2 Replies)
Discussion started by: mady135
2 Replies

5. Shell Programming and Scripting

Removing leading spaces from the variable value.

Hi All, I am trying to replace the value of a xml tag with a new one. But, the existing value in the xml contain leading spaces and I tried to remove that with different sed commands but all in vain. For replacing the value I wrote the command in BOLD letters below: bash-3.00$... (3 Replies)
Discussion started by: khedu
3 Replies

6. Shell Programming and Scripting

Removing leading and trailing spaces only in PERL

Hi All, I have a file with the following contents with multiple lines 172445957| 000005911|8| 400 Peninsula Ave.#1551 | And,K |935172445957|000005911 607573888 |000098536 | 2|Ane, B |J |Ane |1868 |19861206|20090106|20071001 I want to trim the "leading and trailing spaces only" from... (2 Replies)
Discussion started by: kumar04
2 Replies

7. Shell Programming and Scripting

remove trailing and leading spaces using tr command

Dear All, can you please advice how do i remove trailing and leading spaces from a pipe-delimited file using "tr" command the below cmd, i tried removed all spaces tr -d ' '<s1.txt>s2.txt1 Many thx Suresh (5 Replies)
Discussion started by: sureshg_sampat
5 Replies

8. Shell Programming and Scripting

Leading spaces of variable removed

#!/bin/bash TESTVAR=" 5spaces" echo $TESTVAR hostame:~# ./test.sh 5spaces The leading spaces from my variable are removed when the content is echo'd. I am trying to make some tabular data. `echo -e` also fails. Any suggestions? (2 Replies)
Discussion started by: grumm3t
2 Replies

9. UNIX for Dummies Questions & Answers

Removing leading and trailing spaces of data between the tags in xml.

I am having xml document as below. <transactionid> 00 </transactionid> <tracknumber> 0 </tracknumber> <key> N/A </key> But the data contains leading and trailing spaces between the tags. Please let me know how can i remove these leading and trailing spaces between the tags.... (2 Replies)
Discussion started by: jhmr7
2 Replies

10. Shell Programming and Scripting

Leading and Trailing Spaces

Hi, how to i remove leading and trailing spaces from a line? the spaces can be behind or in front of any field or line example of a line in the input data: Amy Reds , 100 , /bin/sh how to i get it to be: Amy Read,100,/bin/sh i saw something on this on the Man pages for AWK... (7 Replies)
Discussion started by: sleepster
7 Replies
Login or Register to Ask a Question