06-23-2009
tr command behaving unexpectedly
Im trying to execute the below command on our server to list files and replace the newline in the file list with spaces, but the character 'n' is getting replaced with a space, is there any environment variable that needs to be set in UNIX?
sh -c 'ls -trx /data/inbound/drm/DRM_PRCC_Category_Flat*.txt /data/inbound/drm/DRM_PRCG_Group_Flat*.txt | tr "\n" " " '
gives the output
Output from command ====>
/data/i bou d/drm/DRM_PRCC_Category_Flat_20090617_113245.txt
/data/i bou d/drm/DRM_PRCG_Group_Flat_20090617_113319.txt
I expect the output to be
/data/inbound/drm/DRM_PRCC_Category_Flat_20090617_113245.txt /data/inbound/drm/DRM_PRCG_Group_Flat_20090617_113319.txt
Funnily the same command is working fine on 3 other servers.
Is there any environment variable that needs to be set or any of the LC_ env variables that hav eto be changed?
Regards
Ramesh
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I have a large file with the first 2 characters of each line determining the type of record. type 03 being a subheader and then it will have multiple 04 records.
eg: 03,xxx,xxxx,xxxx
04,xxxxxxxxxxxxxxxxxxxxxxxxxxxx
04,xxxxxxxxxxxxxxxxxxxxxxxxxxxx
03,xxx,xxx,xxx
... (2 Replies)
Discussion started by: badg3r
2 Replies
2. UNIX for Dummies Questions & Answers
Hi
I am using awk command for string replacement.
I have 2 servers. The command runs perfectly well on 1st server
On the second server when i run the command on the same datset
The command gets stuck while processing a large piece of record..
Does it have anything to with setting on the 2... (1 Reply)
Discussion started by: aixjadoo
1 Replies
3. UNIX for Advanced & Expert Users
Hi Gurus,
I tried FTP one file to UNIX which got values like
wel^come
If I see the content in unix, it shows like
wel^Zcome
^ coverted into ^Z (Control + Z )
Can someone please share what is happening here?
Thanks,
Shahnaz (5 Replies)
Discussion started by: shahnazurs
5 Replies
4. UNIX for Dummies Questions & Answers
My file has
k
s
j
v
l
k
a
s
f
l
k
s
a
d
f
j
l
a
s (3 Replies)
Discussion started by: phoenix_nebula
3 Replies
5. Red Hat
I have two servers on same domain. one can nslookup other cannot
Psu100 can lookup to psu000, psu010 & psu011
Psu110 can NOT lookup to psu000, psu010 & psu011
I verified resolv.conf entries on both psu000 and psu010 and it contains both name servers (10.200.10.21 & 10.200.11.22).I am... (1 Reply)
Discussion started by: scorohan
1 Replies
6. Shell Programming and Scripting
Hi,
I need to count number of '$' symbol in a file and assign it to a variable.
I am using below command.
grep -c '\$' inputfile
O/p:
10359
Its giving correct o/p but when I am assigning the same to a variable its giving completely different o/p.
ab1=`grep -c '\$' inputfile`
$... (3 Replies)
Discussion started by: Opamps123
3 Replies
7. Shell Programming and Scripting
Here is my test script:
#!/bin/sh
result=`jobs`
echo "
Jobs:
"$result
result=`ls`
echo "
LS
"$result
Here is the output:
Jobs:
LS
0 1 2 3 4 5 6 7 gcd initialize.sh #inter_round_clean.sh# inter_round_clean.sh inter_round_clean.sh~ look parallel_first_run.sh... (3 Replies)
Discussion started by: nealh
3 Replies
8. UNIX for Advanced & Expert Users
Hi,
We have few hundered scripts using cut command in thousands of lines. On HP-UX shell script developer used echo "ABCEFG" | cut -c -1-3 to cut first three character of the string. We recently moved to Linux and this command throws error. I think this might be due to different version of... (3 Replies)
Discussion started by: ajazurrahman
3 Replies
9. Shell Programming and Scripting
Hi,
Immediate help on below will be appreciated.
I have to read a file (max of 10MB) which will have no new line characters, i.e. data in single line. and have to inster '\n' at every 100 characters. and if record starts with 'BUCA' then need to pick value of length 10 at position 71 and... (7 Replies)
Discussion started by: maks475
7 Replies
10. UNIX for Advanced & Expert Users
Can anyone explain why wc is behaving weirdly? Their are only 2 occurrences but wc thinks their are 7 occurrences. I have even manually checked this.
$ grep -i base *
lit: base xx
lit.lst:003- 00103 BASE XX
$ grep -i base * | wc -w ... (2 Replies)
Discussion started by: cokedude
2 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)