Problem with tr command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with tr command
# 15  
Old 06-08-2012
@alister
Very good explanation and example.

If it can be explained by a simple change of environment that's brilliant. I'd forgotten about certain Linux using UTF-8 and some of the other consequences like really slow sort, grep, sed etc. . There are many advantages of UTF-8/UTF-16/UTF-nn in the Word Processing world but I can't see any advantage on the default command line.

As you will all know I'm a bit of a Posix cynic (though I support the Posix ideal) mainly because I come across too many non-compliant situations. I have lost track of the "current Posix standard" (despite @jlliagre's best efforts).

I'm not sure that the Original Post is 100% one of those situations because the O/P noticed that what I believed was the portable syntax worked. The Linux/BSD amomaly with the treatment of quoted square brackets in the tr command is in my opinion a coding error.


Quote:
The \[ and \] escape sequences are undefined in POSIX. Their use is not portable.
Not sure if that quote in context because this is nothing to do with Escape Sequences (like for Printer control). If it is, then IMHO that Posix standard needs urgent correction. It's universally expected in unix syntax that a character which is part of the syntax of a command must be escaped if it is to be considered as data.

Last edited by methyl; 06-08-2012 at 04:42 PM.. Reason: thinking on my feet ; typos ; corrections ; clarifications
# 16  
Old 06-08-2012
Quote:
Originally Posted by methyl
As you will all know I'm a bit of a Posix cynic (though I support the Posix ideal) mainly because I come across too many non-compliant situations. I have lost track of the "current Posix standard" (despite @jlliagre's best efforts).
Hehehe. Understandable. You may enjoy standards

I try to keep up with POSIX enough to know when I'm using an extension, but that's about it. Most of the time, when I dig into it, it's a result of investigating some oddity in one of this forum's threads.


Quote:
Originally Posted by methyl
Not sure if that quote in context because this is nothing to do with Escape Sequences (like for Printer control). If it is, then IMHO that Posix standard needs urgent correction. It's universally expected in unix syntax that a character which is part of the syntax of a command must be escaped if it is to be considered as data.
As far as POSIX tr is concerned, the brackets are not special so they do not require a backslash escape sequence. Real world implementations probably drop the backslash and treat the following square-bracket literally, as your implementation is doing (although in your case it's by necessity since it's trying to accomodate the historical syntax), but doing so isn't required by POSIX. A compliant implementation of tr could choose to abort with an error when it encounters \[ or \].

Regards,
Alister
# 17  
Old 06-08-2012
Sorry, not going to click on standards because the URL looks dubious.

How a Posix verson of tr is going to see \[ \] beats me? The Shell gets there first and eats the backslash.

Anyway, I think that this is yet another Posix mistake and we will have to code round it.

Last edited by methyl; 06-08-2012 at 07:29 PM..
# 18  
Old 06-08-2012
Quote:
Originally Posted by methyl
How a Posix verson of tr is going to see \[ \] beats me? The Shell gets there first and eats the backslash.
Please don't blame POSIX for your misunderstanding of single quotes:
Code:
$ echo '\[\]'
\[\]

$ echo '\\'
\\

$

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

I'm facing problem with rpm command, when running the command and appears this error:

exec(): 0509-036 Cannot load program /usr/opt/freeware/bin/rpm because of the following errors: 0509-022 Cannot load module /opt/freeware/lib/libintl.a(libintl.so.1). 0509-150 Dependent module /opt/freeware/lib/libiconv.a(shr4.o) could not be loaded. 0509-152 Member... (4 Replies)
Discussion started by: Ohmkar
4 Replies

2. Shell Programming and Scripting

Problem with mv command and touch command

Hi guys, first of all I would say that this is my first time I write in a Forum. I've read the "forum rules" and I hope i will respect them. I searched everywhere for the solution of my problem but I didn't find anything. Here my problem: I'm using a sap job scheduler: in a particular job... (7 Replies)
Discussion started by: Antcam
7 Replies

3. Red Hat

please help me in if command problem

Please help me this script !!!! Script ***** a=2.0.0.0 b=1.0.0.0 #if test $a -ge $b if then echo "A is Greater than B" else echo "B is Greater than A" fi i am getting following error >sh abc abc: line 6: [: 2.0.0.0: integer expression expected (8 Replies)
Discussion started by: ponmuthu
8 Replies

4. Shell Programming and Scripting

Problem with command tr

Hello, excuse me for my english, i'm a french man. I have a problem with the command tr in applescript (with the accent...in french we have a lot of accents), i have read that is a problem with the version 10.5 of leopard then i would want to download the version 10.4 of universal binary of tr... (1 Reply)
Discussion started by: protocomm
1 Replies

5. Solaris

problem with ps command

Hi all I use to run sql loader inside a script with usename and password written in syntax. Now when I use 'ps' command to know about the status of loading, it also shows username and password that I don't want to share with someone who is sitting with me. If you have any idea except encryption... (1 Reply)
Discussion started by: sanjay1979
1 Replies

6. UNIX for Dummies Questions & Answers

problem with output of find command being input to basename command...

Hi, I am triying to make sure that there exists only one file with the pattern abc* in path /path/. This directory is having many huge files. If there is only one file then I have to take its complete name only to use furter in my script. I am planning to do like this: if ; then... (2 Replies)
Discussion started by: new_learner
2 Replies

7. Shell Programming and Scripting

problem with dd command or maybe AFS problem

Hi, folks. Sorry for bothering, but maybe someone could help me please. The problem is the following: there is some script that copies files from local file system to AFS. The copying is performed with dd command. The script copies data into some AFS volumes. The problem appeared with one... (0 Replies)
Discussion started by: Anta
0 Replies

8. UNIX for Dummies Questions & Answers

Problem with ps command??

I have a problem to.... (1).List the number of unique users that has active processes. (2).List the number of active processes for each of the users in (1). (3).Determine total memory usage for each user. Help me please....thank you. Best... (2 Replies)
Discussion started by: robocup
2 Replies

9. UNIX for Dummies Questions & Answers

problem with who command

Sorry for my poor english. Unix is SCO ODT ver 3.0 Mine problem is : when I login via some terminal emulator and type : who am i I see information like this : username ttyp02 Feb 28 09:53 after logoff and type who command (from some other terminal) I see that ttyp02 is still... (2 Replies)
Discussion started by: bane_yu
2 Replies
Login or Register to Ask a Question