[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8442: sort command in Redhat 5 does not work
From: |
Bob Proulx |
Subject: |
bug#8442: sort command in Redhat 5 does not work |
Date: |
Thu, 7 Apr 2011 15:19:48 -0600 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
retitle 8442 coreutils 5.90 (2005-09-29) drops support for +N option usage
tags 8442 + moreinfo notabug
thanks
Jyotin Patel wrote:
> address@hidden root]# grep prftp /etc/passwd | sort -n +2 -t':' | head -2
> xmit:x:150:204::/prftp/forwarder:/bin/bash
> anl:x:213:206:test user:/prftp/carriers/anl:/sbin/nologin
You are using obsolete options that are not portable. The +2 and -2
options are problematic. Don't use them.
> Sort does not work on REdhat-AS5 ; it used to work on Redhat AS-3
>
> address@hidden mail]# cat /etc/redhat-release
> Red Hat Enterprise Linux Server release 5.6 (Tikanga)
> address@hidden mail]# grep prftp /etc/passwd | sort -n +2 -t':' | head -2
> sort: open failed: +2: No such file or directory
That is correct. This is documented in the NEWS file.
Major changes in release 5.90 (2005-09-29) [unstable]
A few usages still have behavior that depends on which POSIX standard is
being conformed to, and portable applications should beware these
problematic usages. These include:
Problematic Standard-conforming replacement, depending on
usage whether you prefer the behavior of:
POSIX 1003.2-1992 POSIX 1003.1-2001
sort +4 sort -k 5 sort ./+4
tail +4 tail -n +4 tail ./+4
tail - f tail f [see (*) below]
tail -c 4 tail -c 10 ./4 tail -c4
touch 12312359 f touch -t 12312359 f touch ./12312359 f
uniq +4 uniq -s 4 uniq ./+4
(*) "tail - f" does not conform to POSIX 1003.1-2001; to read
standard input and then "f", use the command "tail -- - f".
These changes are in response to decisions taken in the January 2005
Austin Group standardization meeting. For more details, please see
"Utility Syntax Guidelines" in the Minutes of the January 2005
Meeting http://www.opengroup.org/austin/docs/austin_239.html.
Also the coreutils info manual has the following documentation.
The gnu utilities normally conform to the version of POSIX that is
standard for your system. To cause them to conform to a different
version of POSIX, define the _POSIX2_VERSION environment variable
to a value of the form yyyymm specifying the year and month the
standard was adopted. Two values are currently supported for
_POSIX2_VERSION: ‘199209’ stands for POSIX 1003.2-1992, and
‘200112’ stands for POSIX 1003.1-2001. For example, if you have a
newer system but are running software that assumes an older
version of POSIX and uses ‘sort +1’ or ‘tail +10’, you can work
around any compatibility problems by setting
‘_POSIX2_VERSION=199209’ in your environment.
See also this FAQ entry:
http://www.gnu.org/software/coreutils/faq/#Old-tail-plus-N-syntax-now-fails
Instead of:
> grep prftp /etc/passwd | sort -n +2 -t':' | head -2
Use something like this instead:
$ sort -t : -k 3n,3 /etc/passwd | head -n 20
Bob