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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to remove leading and trailing spaces for variable in shell script?
# 1  
Old 10-18-2018
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 )

Code:
INPUT
 
tablename=  yyy

I want the below output

Code:
OUTPUT:
tablename=yyy

# 2  
Old 10-18-2018
Waat shell are you using? What OS? I can give you different ways to do this, but using shell built-ins are the best choice.
# 3  
Old 10-18-2018
As in your last thread, when I asked:
Quote:
What operating system are you using?

What shell are you using?
How you remove <space> characters from the start and end of a shell variable depends entirely on what shell (including the version number) of the shell you're using.

Whenever you start a thread asking questions about a shell script, PLEASE tell us what operating system (including release number) and shell (including version number) you're using so we can make suggestions that will work in your environment.

Explain where your variables are initialized (or show us the code that is used to initialize them). The code you showed us in post #1 in this thread (if you're using a standard shell) would initialize the variable tablename to an empty string and put that variable definition in the environment when it invoked the yyyy utility. Once the yyyy utility completed running, the tablename variable would not be defined in your current shell execution environment (unless some other code that you haven't shown us assigned it a value.

If the code you showed us in post #1 was intended to show its initial value instead of how it was set, note that you said that variable had leading AND trailing spaces; but there are no trailing spaces on that line.
# 4  
Old 10-19-2018
Hi

I am using regular .sh file .

I am using Redhat linux as Operating system

Last edited by Don Cragun; 10-19-2018 at 12:07 AM.. Reason: Remove duplicated text.
# 5  
Old 10-19-2018
Quote:
Originally Posted by pottic
Hi

I am using regular .sh file .

I am using Redhat linux as Operating system
As I said in post #6 in your previous thread:
Quote:
.sh is not a shell. .sh is a common filename extension used on Windows systems to indicate that the contents of the file are a shell script. But, since you're using Red Hat Linux instead of Windows, we don't know if you're using bash (or sh that is often a link to bash with several built-in utilities and syntax features that behave differently), dash, ksh, zsh, or one of several other shells that might or might not be available on your system.
Please tell us the name and version of the shell you are using to run your shell script!
# 6  
Old 10-19-2018
2.6.32- Red hat version and I am using sh

------ Post updated at 11:33 PM ------

Hi

I need few commands which I could try
# 7  
Old 10-19-2018
If there aren't any embedded <space>s in your variable, the command:
Code:
tablename=${tablename// /}

will remove all of the leading and trailing (and embedded) <space>s in your variable. If there are embedded <space>s you need to preserve you can use:
Code:
while [[ $tablename != ${tablename# } ]]
do	tablename=${tablename# }	# Remove one leading <space> from tablename.
done
while [[ $tablename != ${tablename% } ]]
do	tablename=${tablename% }	# Remove one trailing <space> from tablename.
done
printf 'Updated tablename with zero or more embedded spaces is "%s"\n' "$tablename"

Neither of the above are portable scripts, but all should work in your environment.

For a script meeting your requirements that should work with any shell that performs all of the expansions required by the POSIX standards, you could try
Code:
while [ "$tablename" != "${tablename# }" ]
do	tablename=${tablename# }	# Remove one leading <space> from tablename.
done
while [ "$tablename" != "${tablename% }" ]
do	tablename=${tablename% }	# Remove one trailing <space> from tablename.
done
printf 'Updated tablename with zero or more embedded spaces is "%s"\n' "$tablename"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

Remove the leading and trailing date from a CSV file

I'm a newbie to shell scripting. Can anyone help with the below requirement ? The leading and trailing date of a files to be removed. 2017-07-12_gmr_tag_log_20170711.csv 2017-07-12_gmr_call_log_20170711.csv 2017-07-12_gmr_outgoing_log_20170711.csv I'm looking for output like... (7 Replies)
Discussion started by: shivamayam
7 Replies

3. 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

4. Shell Programming and Scripting

Remove trailing spaces from file

I'm currently writing my sql results to a file and they have trailing spaces after each field. I want to get rid of these spaces and I'm using this code: TVXTEMP=$(echo $TVXTEMP|sed -e 's/\ //g') It doesn't work though. I'm not familiar with sedscript, and the other codes I've found online... (6 Replies)
Discussion started by: avillanueva
6 Replies

5. 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

6. 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

7. UNIX for Dummies Questions & Answers

How to remove trailing spaces

Hi, I have a file like this (ADD_MONTHS((Substr(Trim(BOTH FROM Translate(Maximum(closeDa ------------------------------------------------------------ 2007-06-30 00:00:00 I have a requirement where i need just the date. When i do: tail -1... (2 Replies)
Discussion started by: mahek_bedi
2 Replies

8. 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

9. Shell Programming and Scripting

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

Featured Tech Videos