Can I suggest a slight change - to fix last character not output and to support spaces within string:
Thanks. After I posted and was "finalizing" the script I noticed the missing last letter, which I solved by adding 1 to the length: I also added the quotes out of habit. I didn't see how they would matter at first since it's taking the first argument. If the argument is abc def, it will see it as abc whether it's quoted or not. But now I see that quoting both the argument on the command line and variable in the script is the only way it will take an argument with spaces using $1.
Luckily I was using and it won't contain any spaces anyway, but that's good to know.
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)
I need to add spaces in between characters in a string variable.
Is there a shortcut? I know you can remove the spaces with sed, but does sed have a way to add them?
Example:
I have: DATA01
I want it to be: D A T A 0 1
What I have done so far is to create a function... (4 Replies)
Hi,
I want to test a unix file by inserting greek characters in to vi editor.
Can anyone please suggest how to insert greek characters in to vi editor. (2 Replies)
Hi Experts,
I have called some.txt with the following content.
oracle HYRDSRVIHUB01 pts/0 TESTIHUB 07-JUN-10 CREATE TABLE
TESTIHUB PHONE ... (12 Replies)
Input:
Youcaneasilydothisbyhighlightingyourcode.
Putting space after three characters.
You can eas ily dot his byh igh lig hti ngy our cod e.
How can i do this using sed? (10 Replies)
Hey all,
Fist post, so be kind... I have written an expect script which logs into a terminal and gathers several screens of information. Unfortunately the log file gives me all the special escape and control characters from the terminal. I am hoping to use a combination of shell scripting, sed,... (1 Reply)
i have written a shell script that reads a csv file and inserts tokenized strings into the database.
the problem comes when the csv file has cyrillic characters.
how do i set the parameters in my shell script(korn shell) so that any characters can be inserted into the database. (3 Replies)
Hello, newb here :o
How do I add square brackets before and after the first character in a string using sed?
e.g.
0123456
123456
My attempts have been fruitless.
sed 's/.\{0\}//'
Thanks. (2 Replies)
Hi all...
This is more of a concensus question than help...
As many of you know I am experimenting with the limitations of Pure POSIX shell scripting.
Q: Is the directory /bin considered part of the Pure POSIX shell or must I stick entirely with the builtins only?
The reason is I... (2 Replies)
Dear all,
I would like to insert N blankspaces in front of a string using sed command
To give an example (N=10), I tried that code:
$ echo "abcd" | sed 's/^/ \{10,\}&/'
but I failed, by obtaining that result:
{10,}abcd
Any help would be greatly appreciated,
Thanks in advance,... (18 Replies)
Discussion started by: dae
18 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS --debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)